{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Deep Q- learning Agent- Stock Trading"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import- Data and Functions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b> \n",
    "    We begin with inputing following variables:\n",
    "    - Stock1_name: this is first stock name, which is Google - googl.us\n",
    "    - Stock2_name: this is second stock name, which is Walmart - wm.us\n",
    "    - episode_count: This is number of episodes which agent till train on\n",
    "    - Start_balance: This is the initial starting cash, which is $ 100,000\n",
    "    - Training: This is number of records used for trading i.e. number of days on each episode of training will run\n",
    "    - Test: This is number of days on which test run will be executed \n",
    " \n",
    " </b>\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "from agent.agent import Agent\n",
    "from state.state import State\n",
    "import pandas as pd\n",
    "from functions import *\n",
    "import sys\n",
    "\n",
    "import pandas as pd\n",
    "\n",
    "import math, random \n",
    "import numpy as np \n",
    "from datetime import datetime, timedelta\n",
    "\n",
    "#stock_name, window_size, episode_count = sys.argv[1], int(sys.argv[2]), int(sys.argv[3])\n",
    "\n",
    "stock_name1,stock_name2, episode_count, start_balance, training, test = 'googl.us','wm.us', 21,100000,1500,500\n",
    "\n",
    "\n",
    "pd_data1=pd.read_csv('data/googl.us.txt', sep=\",\", header=0)\n",
    "pd_data2=pd.read_csv('data/wm.us.txt', sep=\",\", header=0)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data Pre-processing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this section we will do the following:\n",
    "1. Look at the data of Google and Walmart stock for checking anamolies (missing data etc.). Also convert date into right format\n",
    "2. Make sure that both the stock data is for the same time period and same days in this time period. Remove data if necessary\n",
    "3. Look at descriptive statistics of data- mean, median, number of records\n",
    "4. Visualize the data to see how stock price changes with time\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### View Google Stock data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2005-06-29</td>\n",
       "      <td>151.25</td>\n",
       "      <td>152.19</td>\n",
       "      <td>146.07</td>\n",
       "      <td>146.36</td>\n",
       "      <td>36597400</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2005-06-30</td>\n",
       "      <td>147.17</td>\n",
       "      <td>149.46</td>\n",
       "      <td>145.52</td>\n",
       "      <td>147.07</td>\n",
       "      <td>30188800</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2005-07-01</td>\n",
       "      <td>147.52</td>\n",
       "      <td>148.12</td>\n",
       "      <td>144.61</td>\n",
       "      <td>145.62</td>\n",
       "      <td>18455200</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2005-07-05</td>\n",
       "      <td>146.05</td>\n",
       "      <td>147.99</td>\n",
       "      <td>145.12</td>\n",
       "      <td>147.85</td>\n",
       "      <td>14988000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2005-07-06</td>\n",
       "      <td>148.65</td>\n",
       "      <td>148.80</td>\n",
       "      <td>145.69</td>\n",
       "      <td>145.76</td>\n",
       "      <td>16000600</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Date    Open    High     Low   Close    Volume  OpenInt\n",
       "0  2005-06-29  151.25  152.19  146.07  146.36  36597400        0\n",
       "1  2005-06-30  147.17  149.46  145.52  147.07  30188800        0\n",
       "2  2005-07-01  147.52  148.12  144.61  145.62  18455200        0\n",
       "3  2005-07-05  146.05  147.99  145.12  147.85  14988000        0\n",
       "4  2005-07-06  148.65  148.80  145.69  145.76  16000600        0"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "pd_data1.head()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### View Walmart Stock data\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2005-02-25</td>\n",
       "      <td>23.122</td>\n",
       "      <td>23.495</td>\n",
       "      <td>22.964</td>\n",
       "      <td>23.434</td>\n",
       "      <td>1799314</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2005-02-28</td>\n",
       "      <td>23.384</td>\n",
       "      <td>23.448</td>\n",
       "      <td>23.067</td>\n",
       "      <td>23.177</td>\n",
       "      <td>2267562</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2005-03-01</td>\n",
       "      <td>23.202</td>\n",
       "      <td>23.607</td>\n",
       "      <td>23.202</td>\n",
       "      <td>23.535</td>\n",
       "      <td>2072350</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2005-03-02</td>\n",
       "      <td>23.425</td>\n",
       "      <td>23.670</td>\n",
       "      <td>23.306</td>\n",
       "      <td>23.607</td>\n",
       "      <td>1777398</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2005-03-03</td>\n",
       "      <td>23.590</td>\n",
       "      <td>23.639</td>\n",
       "      <td>23.344</td>\n",
       "      <td>23.400</td>\n",
       "      <td>1584080</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Date    Open    High     Low   Close   Volume  OpenInt\n",
       "0  2005-02-25  23.122  23.495  22.964  23.434  1799314        0\n",
       "1  2005-02-28  23.384  23.448  23.067  23.177  2267562        0\n",
       "2  2005-03-01  23.202  23.607  23.202  23.535  2072350        0\n",
       "3  2005-03-02  23.425  23.670  23.306  23.607  1777398        0\n",
       "4  2005-03-03  23.590  23.639  23.344  23.400  1584080        0"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "pd_data2.head()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Date in Above data is not in Dateformat, so converting date to date format "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Convert  Date to Date format\n",
    "pd_data1['Date']=pd.to_datetime(pd_data1['Date'], format='%Y/%m/%d')\n",
    "pd_data2['Date']=pd.to_datetime(pd_data2['Date'], format='%Y/%m/%d')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Desciptive statistics of Google and Walmart data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Google Stock- descriptive statistics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3116.000000</td>\n",
       "      <td>3116.000000</td>\n",
       "      <td>3116.000000</td>\n",
       "      <td>3116.000000</td>\n",
       "      <td>3.116000e+03</td>\n",
       "      <td>3116.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>410.619523</td>\n",
       "      <td>414.130549</td>\n",
       "      <td>406.671010</td>\n",
       "      <td>410.463003</td>\n",
       "      <td>6.970182e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>229.235665</td>\n",
       "      <td>230.422523</td>\n",
       "      <td>227.837434</td>\n",
       "      <td>229.258823</td>\n",
       "      <td>6.852298e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>131.260000</td>\n",
       "      <td>134.680000</td>\n",
       "      <td>123.650000</td>\n",
       "      <td>128.720000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>240.110000</td>\n",
       "      <td>242.365000</td>\n",
       "      <td>237.560000</td>\n",
       "      <td>239.555000</td>\n",
       "      <td>2.378724e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>304.130000</td>\n",
       "      <td>306.795000</td>\n",
       "      <td>301.340000</td>\n",
       "      <td>304.175000</td>\n",
       "      <td>4.828672e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>559.432500</td>\n",
       "      <td>562.535000</td>\n",
       "      <td>554.155000</td>\n",
       "      <td>558.480000</td>\n",
       "      <td>8.971350e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1050.050000</td>\n",
       "      <td>1063.620000</td>\n",
       "      <td>1047.050000</td>\n",
       "      <td>1058.290000</td>\n",
       "      <td>8.223340e+07</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Open         High          Low        Close        Volume  \\\n",
       "count  3116.000000  3116.000000  3116.000000  3116.000000  3.116000e+03   \n",
       "mean    410.619523   414.130549   406.671010   410.463003  6.970182e+06   \n",
       "std     229.235665   230.422523   227.837434   229.258823  6.852298e+06   \n",
       "min     131.260000   134.680000   123.650000   128.720000  0.000000e+00   \n",
       "25%     240.110000   242.365000   237.560000   239.555000  2.378724e+06   \n",
       "50%     304.130000   306.795000   301.340000   304.175000  4.828672e+06   \n",
       "75%     559.432500   562.535000   554.155000   558.480000  8.971350e+06   \n",
       "max    1050.050000  1063.620000  1047.050000  1058.290000  8.223340e+07   \n",
       "\n",
       "       OpenInt  \n",
       "count   3116.0  \n",
       "mean       0.0  \n",
       "std        0.0  \n",
       "min        0.0  \n",
       "25%        0.0  \n",
       "50%        0.0  \n",
       "75%        0.0  \n",
       "max        0.0  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_data1.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Walmart Stock- descriptve statistics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3201.00000</td>\n",
       "      <td>3201.000000</td>\n",
       "      <td>3201.000000</td>\n",
       "      <td>3201.000000</td>\n",
       "      <td>3.201000e+03</td>\n",
       "      <td>3201.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>36.06852</td>\n",
       "      <td>36.340342</td>\n",
       "      <td>35.798395</td>\n",
       "      <td>36.077707</td>\n",
       "      <td>3.222051e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>14.71595</td>\n",
       "      <td>14.755393</td>\n",
       "      <td>14.708306</td>\n",
       "      <td>14.734227</td>\n",
       "      <td>2.021389e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>17.78500</td>\n",
       "      <td>18.317000</td>\n",
       "      <td>17.548000</td>\n",
       "      <td>17.652000</td>\n",
       "      <td>5.565350e+05</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>26.67900</td>\n",
       "      <td>26.924000</td>\n",
       "      <td>26.399000</td>\n",
       "      <td>26.656000</td>\n",
       "      <td>1.936468e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>29.34200</td>\n",
       "      <td>29.552000</td>\n",
       "      <td>29.094000</td>\n",
       "      <td>29.326000</td>\n",
       "      <td>2.678160e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>42.82800</td>\n",
       "      <td>43.159000</td>\n",
       "      <td>42.601000</td>\n",
       "      <td>42.828000</td>\n",
       "      <td>3.838658e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>82.31000</td>\n",
       "      <td>82.870000</td>\n",
       "      <td>81.700000</td>\n",
       "      <td>82.310000</td>\n",
       "      <td>2.253831e+07</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Open         High          Low        Close        Volume  \\\n",
       "count  3201.00000  3201.000000  3201.000000  3201.000000  3.201000e+03   \n",
       "mean     36.06852    36.340342    35.798395    36.077707  3.222051e+06   \n",
       "std      14.71595    14.755393    14.708306    14.734227  2.021389e+06   \n",
       "min      17.78500    18.317000    17.548000    17.652000  5.565350e+05   \n",
       "25%      26.67900    26.924000    26.399000    26.656000  1.936468e+06   \n",
       "50%      29.34200    29.552000    29.094000    29.326000  2.678160e+06   \n",
       "75%      42.82800    43.159000    42.601000    42.828000  3.838658e+06   \n",
       "max      82.31000    82.870000    81.700000    82.310000  2.253831e+07   \n",
       "\n",
       "       OpenInt  \n",
       "count   3201.0  \n",
       "mean       0.0  \n",
       "std        0.0  \n",
       "min        0.0  \n",
       "25%        0.0  \n",
       "50%        0.0  \n",
       "75%        0.0  \n",
       "max        0.0  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_data2.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Drop Data that is not in both stock data- some days data is missing in Google and some in Walmart"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Pre -Processing the Datasheet ...Drop Data that is not in both stock data- some days data is missing in Apple and some in Amazon\n",
    "import datetime\n",
    "#timestamp = data1_date[10]\n",
    "#print(timestamp.strftime('%Y-%m-%d'))\n",
    "list1= pd_data1['Date']\n",
    "list2= pd_data2['Date']\n",
    "diff_pd1_data = list(set(list1) - set(list2))\n",
    "diff_pd2_data = list(set(list2) - set(list1))\n",
    "#x11=x[0].strftime('%Y-%m-%d 00:00:00')\n",
    "#p=datetime.datetime.strptime(x11, \"%Y-%m-%d 00:00:00\")\n",
    "#print(p)\n",
    "for k in range(len(diff_pd1_data)):\n",
    "    pd1_dat_format=diff_pd1_data[k].strftime('%Y-%m-%d 00:00:00')\n",
    "    date_format_pd1=datetime.datetime.strptime(pd1_dat_format, \"%Y-%m-%d 00:00:00\")\n",
    "    for i, j in enumerate(list1):\n",
    "        if j == date_format_pd1:\n",
    "            #print(i)\n",
    "            pd_data1=pd_data1.drop([i])            \n",
    "pd_data1=pd_data1.reset_index(drop=True)\n",
    "\n",
    "for k in range(len(diff_pd2_data)):\n",
    "    pd2_dat_format=diff_pd2_data[k].strftime('%Y-%m-%d 00:00:00')\n",
    "    date_format_pd2=datetime.datetime.strptime(pd2_dat_format, \"%Y-%m-%d 00:00:00\")\n",
    "    for M, N in enumerate(list2):\n",
    "        if N == date_format_pd2:\n",
    "            #Sprint(M)\n",
    "            pd_data2=pd_data2.drop([M])\n",
    "            \n",
    "pd_data2=pd_data2.reset_index(drop=True) \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now the data is clean, both Google and Walmart have 3115 records"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3.115000e+03</td>\n",
       "      <td>3115.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>410.651658</td>\n",
       "      <td>414.162816</td>\n",
       "      <td>406.701999</td>\n",
       "      <td>410.494410</td>\n",
       "      <td>6.971470e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>229.265450</td>\n",
       "      <td>230.452477</td>\n",
       "      <td>227.867446</td>\n",
       "      <td>229.288926</td>\n",
       "      <td>6.853021e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>131.260000</td>\n",
       "      <td>134.680000</td>\n",
       "      <td>123.650000</td>\n",
       "      <td>128.720000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>240.100000</td>\n",
       "      <td>242.350000</td>\n",
       "      <td>237.560000</td>\n",
       "      <td>239.550000</td>\n",
       "      <td>2.376398e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>304.100000</td>\n",
       "      <td>306.690000</td>\n",
       "      <td>301.280000</td>\n",
       "      <td>304.170000</td>\n",
       "      <td>4.829344e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>559.455000</td>\n",
       "      <td>562.570000</td>\n",
       "      <td>554.160000</td>\n",
       "      <td>558.510000</td>\n",
       "      <td>8.972900e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1050.050000</td>\n",
       "      <td>1063.620000</td>\n",
       "      <td>1047.050000</td>\n",
       "      <td>1058.290000</td>\n",
       "      <td>8.223340e+07</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Open         High          Low        Close        Volume  \\\n",
       "count  3115.000000  3115.000000  3115.000000  3115.000000  3.115000e+03   \n",
       "mean    410.651658   414.162816   406.701999   410.494410  6.971470e+06   \n",
       "std     229.265450   230.452477   227.867446   229.288926  6.853021e+06   \n",
       "min     131.260000   134.680000   123.650000   128.720000  0.000000e+00   \n",
       "25%     240.100000   242.350000   237.560000   239.550000  2.376398e+06   \n",
       "50%     304.100000   306.690000   301.280000   304.170000  4.829344e+06   \n",
       "75%     559.455000   562.570000   554.160000   558.510000  8.972900e+06   \n",
       "max    1050.050000  1063.620000  1047.050000  1058.290000  8.223340e+07   \n",
       "\n",
       "       OpenInt  \n",
       "count   3115.0  \n",
       "mean       0.0  \n",
       "std        0.0  \n",
       "min        0.0  \n",
       "25%        0.0  \n",
       "50%        0.0  \n",
       "75%        0.0  \n",
       "max        0.0  "
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_data1.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3115.000000</td>\n",
       "      <td>3.115000e+03</td>\n",
       "      <td>3115.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>36.427925</td>\n",
       "      <td>36.702963</td>\n",
       "      <td>36.155391</td>\n",
       "      <td>36.437733</td>\n",
       "      <td>3.254244e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>14.755491</td>\n",
       "      <td>14.793010</td>\n",
       "      <td>14.749815</td>\n",
       "      <td>14.773647</td>\n",
       "      <td>2.037093e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>17.785000</td>\n",
       "      <td>18.317000</td>\n",
       "      <td>17.548000</td>\n",
       "      <td>17.652000</td>\n",
       "      <td>5.565350e+05</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>26.879500</td>\n",
       "      <td>27.118000</td>\n",
       "      <td>26.607000</td>\n",
       "      <td>26.880000</td>\n",
       "      <td>1.963397e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>29.493000</td>\n",
       "      <td>29.675000</td>\n",
       "      <td>29.246000</td>\n",
       "      <td>29.489000</td>\n",
       "      <td>2.719352e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>43.347000</td>\n",
       "      <td>43.571000</td>\n",
       "      <td>43.086000</td>\n",
       "      <td>43.375000</td>\n",
       "      <td>3.891154e+06</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>82.310000</td>\n",
       "      <td>82.870000</td>\n",
       "      <td>81.700000</td>\n",
       "      <td>82.310000</td>\n",
       "      <td>2.253831e+07</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Open         High          Low        Close        Volume  \\\n",
       "count  3115.000000  3115.000000  3115.000000  3115.000000  3.115000e+03   \n",
       "mean     36.427925    36.702963    36.155391    36.437733  3.254244e+06   \n",
       "std      14.755491    14.793010    14.749815    14.773647  2.037093e+06   \n",
       "min      17.785000    18.317000    17.548000    17.652000  5.565350e+05   \n",
       "25%      26.879500    27.118000    26.607000    26.880000  1.963397e+06   \n",
       "50%      29.493000    29.675000    29.246000    29.489000  2.719352e+06   \n",
       "75%      43.347000    43.571000    43.086000    43.375000  3.891154e+06   \n",
       "max      82.310000    82.870000    81.700000    82.310000  2.253831e+07   \n",
       "\n",
       "       OpenInt  \n",
       "count   3115.0  \n",
       "mean       0.0  \n",
       "std        0.0  \n",
       "min        0.0  \n",
       "25%        0.0  \n",
       "50%        0.0  \n",
       "75%        0.0  \n",
       "max        0.0  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_data2.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data Visualization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff1c10df4e0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Google Stock Plot\n",
    "import matplotlib.pyplot as plt\n",
    "import datetime\n",
    "import numpy as np\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "x1 = np.array(pd_data1['Date'])\n",
    "y1 = pd_data1['Open']\n",
    "y12= pd_data1['Volume']\n",
    "\n",
    "plt.title(\"Google Stock Performance Over years\")\n",
    "plt.xlabel(\"Year\")\n",
    "plt.ylabel(\"Price in $\")\n",
    "\n",
    "\n",
    "\n",
    "plt.plot(x1,y1)\n",
    "\n",
    "\n",
    "ax2 = plt.twinx()  # instantiate a second axes that shares the same x-axis\n",
    "\n",
    "color = 'tab:red'\n",
    "ax2.set_ylabel('volume', color=color)  # we already handled the x-label with ax1\n",
    "ax2.plot(x1, y12, color=color)\n",
    "ax2.tick_params(axis='y', labelcolor=color)\n",
    "\n",
    "\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaMAAAEWCAYAAADLkvgyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXeYG8XZwH9z/Xzu3bgDBolqmumEFmKbYnroJRADIZRAqIHQg0noH4TQDKYX00OvxhCaDcZgS27n3u5sX++S5vtjV7qVtJJW0q7K3fye557Tzs7OvtvmnXnnnXeElBKFQqFQKLJJQbYFUCgUCoVCKSOFQqFQZB2ljBQKhUKRdZQyUigUCkXWUcpIoVAoFFlHKSOFQqFQZB2ljPIQIcTNQojnsi1HphFCHCyEWJOlc28vhPhJCNEghLg0GzIoFF0ZpYwygBDiOiHEexFpS2KknZJZ6RIjhFghhDg8QZ7rhRDLhRCNQog1QoiXDfu+EEKc77ykYfKcI4Tw6/LUCyHmCSGOSqPIq4EvpJS9pJQP2iVnriOEOEoI8b0QokkIsVkI8bwQYkS25VJ0PZQyygxfAvsLIQoBhBBDgWJg94i0bfW8OYEQoshivrOBM4HDpZQ9gT2BT52UzSLf6PL0BZ4EXhFC9E+mAMM9GA0sSEUIq/cx1xBCnAi8ADwADAR2BNqAr4QQ/Ww+V9buUb4+ny6HlFL9OfwHlADNwB769snAU8CsiLSlhmMeAFYD9cBc4EDDvpuB5/TfYwAJnKvnrwEuBPYC5gO1wEOGY7cBPgM2A5uA54G+hv0rgGv0Y9uAF4EA0AI0AlebXN9DwP0xrv0OwA+06sc/pKfvB/wA1On/9zMc01+/P+v063lTTz8YWGPIdymwEBhhct5zgK8M2xX6fdpT3z4KmKffn/8Bu8S5B59FXMN2QB/gGaAaWAncABQYzv01cB+wBbg9Iq0WqNTvwTn6c6sCzjbIcCTwk/78VwM3G/YFn/nZwCr9Of7NsL8QuB5YBjSgvT8j9X0u4GNdrkXAyTGem9Cv6+qI9ALgV+BWoFS/lp0M+wfp78rgFO5zUcS5HgbuiUh7B7hc/70V8Jr+DJYDlxryTQC+0c+7Hu0dLTHsl8DFwBL9WKE/myq0d3K+8brUXwbqyWwL0F3+gM+Bv+i/HwL+gFZRG9OmG/KfAQwAioArgQ1Amb7vZqKV0X+AMuAItErzTWAwMFz/wH6j598W+K1ekQxC64ndbzjvCr3yGAmUG9IOj3NtZ+iV21VovaLCiP1fAOcbtvujKZkz9es7Vd8eoO9/F3gZ6IfWgwzKfjC6MgJuBH4EBsWQ6Rx0ZaSf4zK0irkPsLt+T/ZGq7jP1q+xNM49iLyGZ4C3gF76M1gMnGc4tw+4RD93uSHtXP2ct6Mpkof1Z3GELl9Pw7XujFb57wJsBI6NeOaP62XvilaZu/X9VwG/ANujVbK7or1LFWiK7Vxdrt3RFNmOJvfPpZ9jrMm+W9B6nQDTgTsM+y4GPtB/J32fI84zAa1BElTyA9EadUP0+zIX+DtaY29rNAX/Oz3vHsA++nWOATzoSkzfL9GUcn/9Hv5OL6+vfs/cwLBs1xvd6S/rAnSXPzQF8ob++2dgHDAxIu3sOMfXALsayopURsMNeTcDvzdsv2b8ECPKPRb4ybC9AvhDRJ4VxFFGep7TgU+AJv381xr2fUF4RX4m8H3E8d+gVdjD0Hpi/UzOcTCwFrgX+AroE0eec9Aq/1q0Cvfb4DUAjwC3ReRfRKfSM7sHoWtAq1jbgB0M+y9AG1MKnnuViTxLDNs7689tSMRzGx/jeu4H7ot45iMM+78HTjFcyxSTMn4PzI5IexS4ySTvAfo5ykz2XRi8FuBwoNKw72vgrFTvs8m5PMBv9d9/Bt7Tf+9tco+vA56KUc7l6N+avi2BQw3bh6I1KPZBV37Z/Fu4vWv6wu1dVQu3d/1qIe99C7d3zdP/Fi/c3lWbbflT+VO20szxJXCxbmsfJKVcIoTYCMzQ03bCMF4khLgSOB/NFCGB3mgtw1hsNPxuMdnuqZc7GHgQOBCtVV+ApuiMrE724qSUzwPPCyGK0RTc80KIn6SUH5pk3wrNBGRkJVovbiSwRUoZKVOQvsBUNGVbl0Csb6WUB5ikjwbOFkJcYkgr0eUKEu8eDNTzG68hKH+84yOfCVLKWM9pb2Aa2ntRgtZ7ejWivA2G383BY9Hu4TKT848G9hZC1BrSioBnTfJu0v8PQzNjGRlm2P8ZUK7LuwEYD7xhOF869xlgBlrP+2P9/wOGsreKuJZCYDaAEGI7tEbLnkAP/TrnRpQdOreU8jMhxENoPdVRQog3gL9KKesTyOcUT6NZS55JlNHt9fwl+Nvjcl8C7OacWM6hHBgyxzdoJqKpaK1H9Bd9nZ62Tkq5HEAIcSCaLf1ktB5CXzQ7trBBjjvRlNsuUsreaB94ZLkywXZMpJQdUspX0W3uMY5fh1aZGBmF1utZDfQXQvSNcYoatHGIp4QQ+1uVK4LVaKalvoa/HlLKF42XEuf4TUAH4dcQlN/K8VZ4AXgbbaynD5oZ1urzX402NmiWPiviuntKKS8yybsIWAOcZEwUQhQAJ6A7qEgpA8AraKbW04D/SikbDOdL5z4DPAdMEULsimY6e9NQ9vKIsntJKSfr+x8BvMA4/T2/ngTvuZTyQSnlHmiOGtuhmTuzgtvr+RLN9B3C43Jv43G5P/C43HM9Lvdsj8vtMjn0VLRx3rxDKaMMIaVsAeYAV6C33nS+0tOMXnS90ExM1UCREOLvaD0jO+iFNghfK4QYjrUPbiOaTd4U3Y36SCFELyFEgRBiEtoH/V2M498DthNCnCaEKBJC/B7YAa0iWw+8D/xbCNFPCFEshDjIeD4p5RdoZsE39BZ5sjwOXCiE2FtoVATlt3KwlNKPVgHfoV/zaLRnaOfcr15oPcRWIcQEtIreKk8AtwkhxunXt4sQYgDwX7T7fqZ+X4uFEHsJIdyRBUgpJfBX4Ab9OZXrHp9PoL2L9xmyv4BmAjxd/x0krfusy7EGzcHlWeA1/TsCzSxZL4S4RpetUAixkxBiL31/LzTnj0YhhAswU7gh9Puwt96zb0Ibd/VblTNDPAZc4vZ69kB7Nv827vS43KOBsWi91bxDKaPMMgvNqeArQ9psPc2ojD5Eq5AXo5l/WknBdBaDW9AGluvQHAVet3DMnWiVUq0Q4q8m++vRWp6r0MZo/glcJKUMXucDwIlCiBohxINSys1ovZsr0cZJrgaOklIGTT9novU8vGgD4JdHnlBK+THaQPzbQog9LFyD8dg5wB/RzCA1wFK0MZ1kuASt0qpEe54voA3m28WfgFuFEA1og/SvJHHsvXr+j9CezZNoDgINaI4Sp6D1TjcAd6GZAKOQUr6M9iz+gtYbXIg22L+//gyD+b5Duxdbob23wXQ77jNoprqdMZgT9QbB0WhmweW6fE+gWR9Aq6xPQ3MKeRzNISYevfV8NWjf3Gbg7hRkdQSPy90TzfvyVY/LPQ9trG9YRLZTgJluryfXlKglhNYAUigUitxE7xk/B4zRzYLdAo/LPQb4r9vr2cnjcvcGFrm9nkgFZMz/E3Cx2+v5X6ZktBPVM1IoFDmLbja7DHiiOymiSNxeTz2w3ONynwTgcbmFx+XeNbjf43JvjzYV4pssiZg2ShkpFIqcRB/LqkUzR92fZXEyisflfhFNsWzvcbnXeFzu89DG5M7zuNw/o0UDmWI45FTgJbfXk7emLmWmUygUCkXWUT0jhUKhUGSdvJj0WlBQIMvLy7MthkKhUOQVzc3NUkqZF52OvFBG5eXlNDU1ZVsMhUKhyCuEEC2Jc+UGeaExFQqFQtG1UcpIoVAoFFlHKSOFQqFQZB2ljBQKhUKRdZQyUigUCkXWUcpIoVAoFFlHKSOFQqFQZB2ljBSKJAm0t1P7+huoUFoKJ3nu25VUN7RlW4yMoZSRQpEkmx58kPXXX0/jp59mWxRFF2VpVQM3vPkre93xSbZFyRhKGSkUSeKrrgbA39CYZUkUXZWq+u7TIwqilJFCkSoi2wIouiptvs6lm2qb27MoSeZQykihSBI1VqRwmoDhHdvcpJRR2ggh/iKEWCCE+FUI8aIQokwIMVYI8Z0QYokQ4mUhRImTMigUtqPXE0KorpHCGQL6O3b87sMZ2LM0u8JkCMeUkRBiOHApsKeUciegEDgFuAu4T0o5DqgBznNKBoXCUZQyUjhEsGd03gFj6VNenGVpMoPTZroioFwIUQT0ANYDhwIz9f0zgGMdlkGhsBdlplM4TNAUXNCNGjyOKSMp5VrgbmAVmhKqA+YCtVJKn55tDTDc7HghxFQhxBwhxByfz2eWRaHIDjJkp8uuHIouS6AbvmJOmun6AVOAscBWQAUwySSraTNTSvmYlHJPKeWeRUV5sQagotvRjWoKRUYJqJ6RrRwOLJdSVkspO4DXgf2AvrrZDmAEsM5BGRQK+1FmOoXDBF+xgu6jixxVRquAfYQQPYTmdnQYsBD4HDhRz3M28JaDMigUztGNWq2KzCCl5O4PF/Hz6lqge3lsOmb/klJ+J4SYCfwI+ICfgMeAd4GXhBC362lPOiWDQuEMqmekcIbtbnifDn/n+9WdzHSODsZIKW8CbopIrgQmOHlehcJJQpNeu089ocgAHy3YEKaIAMqLC7MkTeZRERgUihTpTiYUhfN8W7klKq2iVCkjhUIRC2WlUzjA8H7lUWkVJd3Hk1gpI4UiVVTPSGEjPUqie0EF3cidTikjhSJZlGu3wmaklNz1gTfbYmQVpYwUimRRERgUNrOpsZ3a5o6wtAEV3SuGtFJGCkXKKGWksIeG1o6otP9eekAWJMke3Wd0TKGwC2WmU9jM0qrOVYNfu2hfCgsKGNYn2qGhK6OUkUKRNMpMp7CHl75fxctzVvPTqtpQ2h6j+2fk3B6XeyTwDDAUCACPub2eByLyCOABYDLQDJzj9np+dEIeZaZTKFLFAV1U8+qrrL3qavsLVuQk177+S5gieuWCfTN5eh9wpdvrcQP7ABd7XO4dIvJMAsbpf1OBR5wSRikjhSJJnFx2fMONf6f+nXccK1+R20wYm5leEYDb61kf7OW4vZ4GwEP0kj5TgGfcXo90ez3fAn09LvcwJ+RRykihSBUTM51sb6funf86qrAUXZOz9h3tRLFFwXXh9L+pZpk8LvcYYDfgu4hdw4HVhu2Ya9ClLagThSoUXZo4eqb6kUfY/Mh/EKUl9D7iiMzJpMg7Wjv8od9bD6zgpqN3dOI0PinlnvEyeFzunsBrwOVur6c+YreZMdqRlpZSRgpFsui9HrPYdL6NVQAE6iO/aYVCwx+QfPDrBvr1KAbgpqN34Nz9x2ZFFo/LXYymiJ53ez2vm2RZA4w0bDu2Bp1SRgpFqph506kJsQoTpJRIqYX3+WHFFi5+odMhbfSAHlmRSfeUexLwuL2ee2Nkexv4s8flfgnYG6hzez3rnZBHKSOFwhGUMlJ0MumB2bR2+PniqkN4dNaysH2HbD84S1KxP3Am8IvH5Z6np10PjAJwez3/Ad5Dc+teiubafa5TwihllEV8W7ZQ2KsXorg426Io7EI5Lih06ls7+GjBRk7YfTjeDQ0AbGlq5/NF1WH5srUUidvr+YoErSa31yOBizMhj1JGWUJ2dLBkv/3pc9xxbHXnP7ItjiIZ4ikcZaZT6Ox/52c0tPloNIT6eXx2ZVied/7cvUL+xEO5dmcJ2aG9oPUffJBlSRRJY0XhKGXUrfH5AzS0+QC4+Z2FofRHvug00XluncjOI/pkXLZcRSkjhSJlMub1qsgz9r/rs4R5yk3WL+rOKGWkUCRLHDNdaLKr6hh1azbWt8Xd/9Bpu2VIkvxBKSOFIkkkiRVOtgalFfmBa2ivbIuQcyhlpFCkiuk8o8yLocgt2nz+qLQLf7NN2HZpkTLRReKYMhJCbC+EmGf4qxdCXC6E6C+E+FgIsUT/388pGfIC5QqcfyhvOkUc6lo056Tbjt2J7YdoPaBrJ7m4//fjQ3kG9SrNimy5jGOu3VLKRcB4ACFEIbAWeAO4FvhUSjlNCHGtvn2NU3LkLKqyynvimuLU8+221OnLh/cpL+bNi/en3RcAwhVQWbHqGUWSKTPdYcAyKeVKtJDkM/T0GcCxGZJBobCHeJ1Z1dPtdiyrbmTMte/ivvEDpJShnlGf8mLKSwrpo8ega9JdvRXmZEoZnQK8qP8eIqVcD6D/N42FIYSYGgx77vN1wYeoKq38JZ4pLrRPDcd2Fw67ZxYALR1+llQ1snJzMwAVEa7bw/tpy4jvMKx3ZgXMExyPwCCEKAGOAa5L5jgp5WPAYwAVFRVdt+ZW5pz8xfTZKdfu7oRxGQiAyuomrnz1ZwAaI3pCO27Vh0W3T1TOCzHIRPNtEvCjlHKjvr1RCDEMQP9flQEZchfVQ8o/rMwzUnQLTn8ifC26K16ZF/odHCsyohRRbDKhjE6l00QHWkjys/XfZwNvZUCG3EP1iLoAsV271Tyj7sHclTVh283tnT2lgGqXJIWjykgI0QP4LWBctGka8FshxBJ93zQnZVAobEe5diss0KdcReNPBkfHjKSUzcCAiLTNaN51CkWeogKlKsK9447edSve+Tl8AdR9txkQeYgiDsrlR6FIFVP/BWWb6S4EveYAyosLWDHtSG46egeEgP9de2gWJctP1HpGCkWSxHVSCO1TPaOuTkB/1kN7l3HdJDcA5+4/lnP3H5tNsfIW1TNSKJLFipOCMtN1eRaurwfgufMn0K+iJMvS5D9KGSkUqRJvnpGiy7OpUVsmYnjfHlmWpGuglJFCkSxqPSMFWkDUksICyopVNWoH6i4qFE6gzHRdnvqWDnqXF6s5ZTahlJFCkSxxHRgyJ4bCWS576Se+rdwcc39dSwd9ypUPmF0oZaRQJIsFbzrVWs5v1tW28Na8dZzy2LcsWFdnmkdTRmpiq10oZZRt1LyU/CXes1PKKK9Zsbkp9Puyl+aZ5lHKyF6UMsoWqrLKXyzNM1LkM6sME1pr9cXyIqlv8dFbKSPbUMpIoUgCf309zXPmADEmv6rYdF2C+tZOBbSpsY1l1Y1ReVo7/JSrFVttQymjbKFa0HlJ26JFFnMqZZTP1Lf4KDA8wuACekY6/AGKC1UVahfqTmYb1YLOLwoTtIRVI6NL8MvaOob2Loubp90XoKRIVaF2oe5kntNWWcmWZ57NthjdB2PjwcxKp1Z67RKs2NzEHmP6446xRPisxdU0tfuVMrIRdSezTZot6RUnnsTGf/zDJmEUiRCGntHayy7DV1MTI2PmtJFsb2fpoYfR8NlnGTtnV6el3U9FSSGvXLBPKO3n1bWh35e++BOAMtPZiLqT2cKmyirQrHn9qOWuM4To/GQCTU1smT49fH8WnoOvupqOdevYcPvtGT93V6Wlw09ZcSG9yjq95aY8/DVPzK6kwx+grkVzcOhZqhwY7EJNH1YokkBEtIRlIBCeQS073iVo6whQXqIpmqG9y9hQ3wrA7e96eGXO6lC+8hJVhdqF6hl1FVTPKDMURHwygRj3PZNmOvXobcXnD9DuD1BWpCmjx87aI2z/4o2dbt4VJapnZBdKGVnA39jEpkceQfr92RYlNqpGygyRSiaqZ5S95yCU14QttPq0Z1peolWPu4zoGzPv2IEVGZGpO6CUkQWq772H6gcepP6DD+wr1K5KS5mDMkzk/Y54jlmZ9KoaInbS0q41OhNNaD1g24HsNqpfJkTqFihlZIFAk+4k0G4eFiQnUD2jzBChY2SkmS6by46rhokt3P2hNrG5yDA++O11h0Xl225Ir4zJ1B1wdPRNCNEXeALYCa359gdgEfAyMAZYAZwspYzhH5tj5HKFn8uydSGiHBMizXSdGZ0XRuEIL+sOCh59WXGAoX3KuPSwcTz46ZJQWqALfHMel3s6cBRQ5fZ6djLZfzDwFrBcT3rd7fXc6oQsTveMHgA+kFK6gF0BD3At8KmUchzwqb6d2+RyxRKUrQt8GPlIoLUlIkU9h67CoJ6lYdtX/HY7lt4xKbTtHtYlekZPAxMT5Jnt9nrG63+OKCJwUBkJIXoDBwFPAkgp26WUtcAUYIaebQZwrFMydAtyWVF2RSLud8eatWHbWVl2XDVEbKO6oS30u2dZtOGoqLCAUyeMBOCkPUZmTC6ncHs9XwJbsi0HONsz2hqoBp4SQvwkhHhCCFEBDJFSrgfQ/w92UAZ7yeGPPncl62JEuHbL1lbTbFmZZ6QaJmmzuqZz6YhY0RXuPH4XVkw7koKCvLjfRUKIOYa/qSmUsa/H5f7Z43K/73G5d7RdQh0nx4yKgN2BS6SU3wkhHiAJk5x+06YClJSUOCNhLpCuglNmugwTUQFFKgD1GPKa1Vs6ldFvthuURUlswyel3DON438ERru9nkaPyz0ZeBMYZ49o4TjZM1oDrJFSfqdvz0RTThuFEMMA9P9VZgdLKR+TUu4ppdyzqChHZjmrlqci8hWIUkZZcO1WDRFb+K5yM2/PWwfAwlt/x8j+PbIsUfZxez31bq+nUf/9HlDscbkHOnEux5SRlHIDsFoIsb2edBiwEHgbOFtPOxvNUyM/yOWPPpdl60JYNr+phkte4d1Qz+8f+5ZPvVrbuIcK8wOAx+Ue6nG5hf57AprO2OzEuZy+45cAzwshSoBK4Fy0i3lFCHEesAo4yWEZ0seJisXuSa9KGeUG6jnkJSs2NSfO1AXxuNwvAgcDAz0u9xrgJqAYwO31/Ac4EbjI43L7gBbgFLfX48hL7qgyklLOA8zsldEzyLoraSo6gRqmyCiJnpea9JqXzF9TmzhTF8Tt9ZyaYP9DwEOZkEVFYEiKHK72VYs8M0RU+G2LFrHsyKPwNzREZMzg81DPPm3+/cWy0O+P/nJQFiXpvihllG2UN11eE2hupn3ZMpp/mJNtUVTPyAYW3z5JhfnJEkoZJUUOfuyqAsoRVGMg3/AHJDe++SvLNzUxfmRfdh/VVy0jnkWUy0hS5G6FozpGGcLqjc7kA1EPPyWWVTfy7Lcr+WHFFoQQDO9blm2RujUJmwFCiB2FEIP03wP0SAovCSF2cF68HCEveh+qQsoqaSiE5rlz2XCrYyG/FDGorG4CwLuhgVZ9mXFF9rDSJ/2P4fcdwAbgDWC6IxIpkiMvFGU3IKiMUlBKK08/g5oXXrRZIEUiLnxubuh3bXM7vcuLsyiNIq4yEkLcBGwLXKT/Pg4oBFzACCHE34UQ3cf1xAlziF1lKlNNbpGN56HaJZapa+5cm2xARQk1zR1s1UeZ6bJJ3DEjKeUtQohjgReAocBBUsrrAIQQh0splW0hVdSk165JFnqqUj37pJn+9fLQ781N7QD0UT2jrGLFgeFW4EugAzgFtHEkYJODcuUmTlQ06ZapzHSZJUbFL9Mw09mFUF0jyzS0+qLSshJpXREi4ZiRlPINKeVWUsrRUspv9LQFUsrjnBcvx8jlFmguy9YNsau30rFuncmE2siT2XKqbkVVQ/TSH4X5sSREzuNxuUd7XO7D9d/lHpfb0sQt5VRvhXx4R5Uyyi42ROs2U2BLDz2M5ccdn3KZCnP+O389AG9dvH8orVD1jNLG43L/EW2Fhkf1pBFoy04kRCmjPMeuz6dyyrGsu+EGm0rrhgT1iAONgo41a+JnUHVoyuy4Ve/Q74Bq0NnBxcD+QD2A2+tZgsUFVJUySgInBoplezv+xqb0y0lTtrZFi6ib+VpUur++nkB7e1plKxxG1aEpMXZgBUWG1Vzf/WV9FqXpMrS5vZ5QheFxuYuw+IZaVkZCiEIhxFZCiFHBvxQEVZiw7uqrUz/YYdPC4gl7s+rcPzh6ji5JNhSEMjNZ4sdVNQBMGNMfgOsmuQD4+1HdZx6/g8zyuNzXA+Uel/u3wKvAO1YOtBQOSAhxCdo6FxuBgJ4sgV2Sl1URSXtlZeoHZ6ACapk7N3GmbkLMHmhWTTyqa5QMT329AoBV+hLjF/xmG07dexS9y5Rrtw1cC5wH/AJcALwHPGHlQKux6S4DtpdSOrLCX87jQIUfVnfZUZEpe7dC9YwsMaCiBIAHTh0fSlOKyB7cXk8AeFz/Swqrymg1UJds4YoMopRRlom4/6k8j1SfoXr2SbGmpoXth/RicC8VccFuPC73UcBtwGg0/SIA6fZ6esc9EOvKqBL4QgjxLtAWTJRS3pu8uHmMUx99Oi1a1RrusshAIHEmRdLMWblFrVnkHPcDxwO/JLs8uVVltEr/K9H/uhWOz8xWZrr8x4n77/dby6caJElR29zB98u3ZFuMrspq4NdkFRFYVEZSyluSFkmRGVRsusxi+TYnzthWWYm/Nrb123LPSD37MDY1tvHhgg2cNmEUQgia23384z0PV090UVGiVXkn7jEiy1J2Wa4G3vO43LMwWNHcXk9CK1pcZSSEuF9KebkQ4h1Mvi4p5TEpCKuIRJnpuiWVk4+Mn8EXHT8tLl3oXahtbmdZdSPLqpvYb5sBjOjXw/KxN7zxKx8s2MCsRdU8dtaenPnk98xdWUPP0mKmHrQ1ED7ZVWErdwCNQBlJWtES9Yye1f/fnYJQCqvY0LJVkZuzjAOmVmnVTNfFnn2HP8De//iUNp/WMywuFCy5Y7Ll439Zq/U2P1q4kTHXvhtKb+3ws7lRa6z369HtRhsyRX+313NEKgcmWkJirv5/ViqFCyFWAA2AH/BJKfcUQvQHXgbGACuAk6WUNamUrzBEgula9VHeISN7MXY0MKwqoyBdpGd09cz5IUUE0OFP7l6urW0xTf9q6SYWrq8HoLk9yXursMonHpf7CLfX81GyB1p1YEiHQ6SUxuUmrgU+lVJOE0Jcq29fkwE50sepCr+LVCLdmfZE8eNSIVll1AWobmjjjZ/Wpnx8bXPs0FVLqxpDv9t83e/eZoiLgas9Lncb2rJDtrt228kU4GD99wzgC3JeGTmhLAyazRYzi+oaZZNAU/rxBSNJumfUBXh3/rq0jj/pP99YyldaVJjWeRTmuL2elH3mk1JGQogKKWUyX50EPhJCSOBRKeVjwBAp5XoAKeV6IYRpRFchxFRgKkBJibLvxkR502WYWOGAIrdteB5WHRi60LPZ9UfxAAAgAElEQVQviLGmUFObj4rSxNXVEkPvJx4HjhuYlFwKa3hc7oPM0t1ez5eJjrUam24/tPhCPYFRQohdgQuklH9KcOj+Usp1usL5WAjhtXI+AF1xPQZQUVHRdb42u1Emvi5LyLXb6jPuAq9C5PhQr9IiGtp8WtSEoeaN7rW1LQzvW57UeZLNr7DMVYbfZcAEYC5waKIDrUbtvg/4HbAZQEr5M2CqAY1IKdfp/6uAN3TBNgohhgHo/6ssyqCIRxdqHecrG//1L5rnzEm9gEhvumDPqCgb1vTM88dn5vD6j+Fjbw+dvjsAR//fV6bHzF5Szf7TPuPDBRsA2GGYNjRxzURXWL5nz5sQ+r3kjkkxe2CK9HB7PUcb/n4L7IQWYDshlt9yKeXqiEgEcQ3aQogKoEBK2aD/PgK4FXgbOBuYpv9/y6oMChOUmS43kJIt058ybKb3PPz19SEHBlEQv83YFdz6n/t2JR8v7KyzxgzowYW/2YZeZVoV1e43nwD8xaLq0P/f7TiUDn+AyTsP5YKDtqZvj2IKheDq1+YzbnAvVkxLMK9L4QRr0BRSQiwHStVNdVIIUQJcCngSHDMEeENXYEXAC1LKD4QQPwCvCCHOQwsxdJJFGbJPF/jouyptlZUUDRxIYe+uMZlx8YS9Gfu23k5LoIyCOB62ykFqmsK94D7/68EIIQgEtG8uuPZQJE9+tRyA3rrSqmlup2+PEgoKBKdO0JZcO3GPEaonlCE8Lvf/0TmCWgCMB362cqxVZXQh8AAwHE3TfYTmwhcTKWUlsKtJ+mbgMIvnzQ3y4SPv5oqycvKRlIwZwzYfvJ9tUeynGzzb1ghX66BiLSgQjB/Zl9LiaIX8j/c628O9yooIBCRbmtpDS0QEUYoooxjt1D7gRbfX87WVA63GptsEnJ6CYAqn0T/ablBfJaR9xQrnT2L1RqsHYplHZy3j4c+XxdxfVlxAW0e0me6xLzsXpbz7o8VsbmonIIlSRorM4fZ6ZqR6rFVvuhnAZVLKWn27H3CPlFKtR50qdlVW+dBr6w5kM/J6Huu9upYO7nw/3Mm2V4QLd0lRIfUtHVHH/ma7QcxaXB3aDq7g2r9nqf2CKuLicbl/wfxNDE56TbgquFUz3S5BRQQgpawRQuxm8VhFRsjjGklhTtKPNP8aJte9Pj9s+5qJLs47YGxYWkmhoMPEgWHMgB7MKy+mLkJRRSozRUY4Kt0CrD61AiFEv2AMOT2+XDd84s5U+DKdcoP1jzILKfKQ937RXLJfu2g/dh3Rh6LC6LGhooICGlqjJwC3dgQoKy6gLiIUXbFJGQpncXs9K4O/PS73EGAvffN7t9djafqO1ad2D/A/IcRtQojbgP8B/0xG2Lwmg6aw2tdeo/aNN5M/UCmj7BJ5/+18HAmfbf4++0k7DQVgj9H9TBURwAcLNrBqSzNjrn2XV+esDqW3+vymYX323WaAM8IqEuJxuU8Gvkfzkj4Z+M7jcp9o5VirDgzPCCHmoM2iFcDxUsqFKcqriEAYzCvr/3YDAH2POzYq35ZnngUh6H/mGVHH+jZtomTUKIclVcRWDPmrELLNuME9Lee9auZ8powfTklRAW/NC49jd+/Ju3L87mrRvGTwuNzT0UxsVW6vJ2o+kMflFmie1JOBZuAct9fzY5wi/wbsFewNeVzuQcAnwMxEssTtGQkheuv/+wMbgBeA54ENelr3wqHeh1Uz3cZ//IONd9xhum/lacrZsevR9RXcutoWykviBy09ePtBYdurtjRTVd8a2g56bh+323Db5esGPA1MjLN/EjBO/5sKPJKgvIIIs9xmLFrgEvWMXkDTmnMJ/zKEvr21lZMoHER50+UE0VEQUlAk6TZ28uRdCAQk7/+6gZYOPz+vqaNnAoeDyTsNC0VaADjrye/YwzAJtvJOFVkhVdxez5cel3tMnCxTgGfcXo8EvvW43H09Lvcwt9ezPkb+9z0u94fAi/r274H3rMiSaHG9o4Q2++w3UspVVgrMRWpnzgQh6HvCCekV5NDHLtLxgnKwAnIizEzrosWUjts2YYibvCObnZg8Gy/8cMEGLn6h09LT2BY/OnkwFNBRuwzjv/PXs66ulXU/aya6RIpMQZE+xBLkMT0ItVWGA6sN22v0tFjKaAPwC1rkBQE85vZ63rByooQ1gtRqJEuF5Srrb7gxNBaTFlk202UbX01NZyTpFGj+6SeWT5nClqeetk+oXMFJhWC1bBsbJi0LFtC6aLFt5Rm56Pl4Qw7RHOLSVpm54KBtovblR18wq/iklHsa/pJRRGB+i+O9kL3QFkydACxDc3azhNXm6bdCiL0SZ+uiOLK2Xh5MejXI6Nu8mSX77semhx4yzdq6eHHCxeA61mgreLYuWGCfjLlClDddBhsYDpxrxQknsnzKFNvLNcMYUduM4X3LWTHtSHYe0Yf/OzV8euNVE7d3UjSF1hMaadgeAcRcAdHt9dzi9np2RAsXtxUwy+Nyf2LlRFaV0SFoCmmZEGK+EOIXIcT8hEcp8psIZQTQ8PHHUdmavv+e5cdMYdMj/7FWbp6MbZgSq+J3QvkkW2Ye3FdfxOTV247diQPHDYqRO5qjd92Kfj2KAThnvzGcte8YO8VTRPM2cJbH5RYel3sfoC7OeJGRKjST3WbAdAHVSKwaXCdZzNel6Qqh+pPCcL0iFAMv+h6sOutsAJrnprGWT4bYOO0uikeMoP8Zdnsfpv9upF1CDr+fLe1+2nx+vlm2OZT22kX7ssfo5J1yh/Quo6a5IxSpW5E6Hpf7ReBgYKDH5V4D3AQUA7i9nv+gOR9MBpaiuXafm6C8i9CcFgahuXP/0e31WJoGFPdpCiHK0CJ2b4s2KPWklNLiWsiKjJAhM12Q9qWxA1rKltaY+/QcaQqUPluefhrAdmUUpaRtUAzLjz0u7TJyhT1u/5jm9k4zrntY75QUEcCeY/rh3dCQFz3BXMft9ZyaYL8kwQoNEYwGLnd7PfOSlSVR02IG0AHMRusd7QBcluxJugrZXC8mZq8sUyJZuPZAW5ttZeUdXcyBwU5mzl0TpogAXpq6T8rlbT9UW7NqXW1LgpyKTOP2eq5N9dhEymgHKeXOAEKIJ9HCPHRbsmmmq52ZcAKz/Riv10JFJ1sT9Ixy2IyUCH9dHbIjOnJ0COXaHZO/vhq9tlo6wUwn7jiUBz9dwtlqvKhLkciBIfT1dWvzXA60OBveN180zjhHKVVl6aupMU23UlrQsQFAJuoZBeXLgfuZLIsPOJAlBxwY+x5HpNvZcJEdHQRaLPQCcvC+/riq893aemBF6Hc6C94N6lXKD387nJ1H9ElLNkVukUgZ7SqEqNf/GoBdgr+FEPWZEFARxMLHm2IFuGTf/RKXZ6jomn/8KfR71TnnhH4H2sOXjo5J7tWZiYnXKwLHeyfLTzwpzqlzt2d0/L+1aSbTjt+Zz/56cHaFUeQ0cZWRlLJQStlb/+slpSwy/O6dKSFzhhz+6AFIY0KqKTGut2V+p9mlzeDQ4N+0yd7zdzfivF/ty2I7juQyA3tqq64eq+LGKRLQxWKyOIMjjgvGiicdHWfsscxx0LU6B01AyZLRHkQGz5VNx5pY+FvbePvi62muqef0vUdRVqwFQz1jn1H868SEi34quiHKUd8CuWwGMSqJVeeci9vrsa9sk3lGpue3eH+yfR/bFjsT3kYje9eW7ftqxvynXmTcp29w5tbV7HBmp+fc7cfunEWpFLmM6hnlAlls2Pqqq2PvNFRyMpZiSqYiDPkvZOeCZUcX98HJkQ7SwnX1+PUxtuKAj0G9SrMskSIfcFwZCSEKhRA/CSH+q2+PFUJ8J4RYIoR4WQhR4rQM6eJ45WmlPo/XM0kRX00NSw48KOZ+f73BRyUZnSMlrZ54PbRwmVt++QV/ba31E2QTq/chk50VB8/V7rM+DtnuC3DNzPlMfnA2079eEUofrJSRwgKZ6BldBhhrpruA+6SU44Aa4LwMyGAP2bSGOKAQA3V1cfevv/5vnRvSeqW06g9/YPlxx7Nlxgzt0I4OfJs2xexFrTjpZFaeEzfKSPcgTXNbWkuRGKhv7fQcnPa+l2tmJg5D6Q9ItrvhfV6eszpq38CeShkpEuOoMhJCjACOBJ7QtwXa0uXBGZwzgOj1tXMOh3tGOWJeAah/r3MdLOMcomQ89Zq/+RaAOr2s9bfcos3RaYs9KbbN601SUkUIm8eMPOs6e8TTv17Oy3NW89Mq87loVfWt7HzThzz7zQrT/QLoU15sq3yKronTPaP7gauBYE02AKg1TKANLtQUhRBiqhBijhBijs9nj63f39hoSzm2Y6EuCRhk9xldqGP0mJrnzmX9LbckLcraK67s3DAsgCcD4UL6G5uofvjh+BWhfkzDx1oE+UCrxXBBTpFDSj+XqWqIfk4vfGe+tuaPq2ppaPNx8zudsTBvm7Ijk3fZCtAWxMtFbz9F7uGYMhJCHAVUSSnnGpNNsprWZlLKx4ILQhUV2eP01/z9D7aUkw1a5nXGHax//4POHSZ3VAYCrDz9DGpffCm0GF7Dp5/iN5jlZCDAhjvvjHtOYyVS89yzxh1U33sPm/7PfG2jEPq5RcR21tzEHTSz1r4aHq6pY/UqmufOjZE7t6lpjp68/OrcNTFyh9/UL686hDP3HcP+2wwEoLdaiVVhESfflP2BY4QQk4EyoDdaT6mvEKJI7x3FXaipS+OgO+7ivQyLlfl8dNTUsubiP1Ox376Mmj4dgPbKSppmfRm/IEPPKLKyDTQnDk8jZYTyidzOS6w9t6q77wGw19U+ETbd17+/tQCz4FM+f4CiwvD2a01zeGSKAT1z3h9JkaM41jOSUl4npRwhpRwDnAJ8JqU8HfgcOFHPdjbwllMy5A3JKiajm7VJ1yjQ1NSZ1ecLBfhsX7GyM93KGFBBmq9HIOTLrZ3T5DozOkcmn3Vghph4f+wGyn7TPuPuDxeFedit2NRESVEB3tsm8sHlB1KhekKKFMnGPKNrgCuEEEvRxpCezNiZ062MnKo47Q7jY0D6fAg9KGWYArJwLSKeMrKiqILnC+YN5N7kzJwi5fcrteOWVjXiWR8eYtK7oSFse8W0I0MBTqsa2njo86W8/XOnMWNzUzsDK0ooKy7ENdQQISzUS1PPXGGNjCgjKeUXUsqj9N+VUsoJUsptpZQnSSmzPKptAcfnGSX7wSY16QcKtVAs+P3h6YmId91WbkmUmc7knDkYPSCSsPlWOULH+vUs3mdf2pYv70xM8j09/N5ZTHpgdmg7Vi/13UsPDNuubmijtcPPQf/8nJlz15g6PKheqCJZVASGHCBpU1Uy6wxJGerhhPWMHDDTFfYJD+kfuq5QI9lkzCgPlNHqqRdkW4Qo6t97D39tLbWvvJrS8Vuawp0UFm1o4IcV5u7b5SWFHOoaHNr2BwK8OncNq7Y0A+BTPV6FDSgDby6QpJlO+g35Eygjo6LzG9ceslCBxHbJFabnLRo8KDxBP0dwXCukDI2H5oEyavn112yLYEKc3mYEUkrW17WyVd9yADbUtbLPnZ+G9v9v2SZOe/w7dh6uNSYePGU8vBleRk/DWNADny6hw9953sk7D417boXCCqpnlAskO2aU5AduWiGkO9vfRBlFnSfSlbsr1Eu5UrkGe61ShmRq/fVX1t94Y1TWez5azH7TPuPvb2lK9azp34Xtf3ueNgb0y1rN9X/PMf2iyvhhxZbQb6MiArjlmJ2i5ctjj8nWxYtZvP8B8eM2KmxHKaMcIPmXPrnlwM3HahIrwPitWhMvvvoGFu/dGaE5yrXbbJ5RrlTu+UaoYxT+HCNd8AEe+nwpAM98o3lTLt4YPvn7pR86Q/gUCOjfIzpiwnZDepmKsej2iXkbCNU7fjfW33xzVPqWZ57Bv3kzDV98kXGZujPdSxlFVNz+xkY2TrvL+gql+VhxGlrOYVjpjRkdHgy0LVlsqgR9VVVhE2tD3nOhsaf8dGDIGEnci1SjGnToJt7dRvWlV1m0lb5XWTGlRYVR6Q+eshuHbzeAaV89wi7VS0PpZnnzBdnaSu1LL0elC6G8P7NB91JGEWx66GG2PP00da+9Fj+jAyaHtGzp6Tg8JHH+yFZ3ELPWtykRY0Rmc5vy4nPPRZOT0fQZ51kuqw7vBS3Re0XHjh/OLzf/Lip/XUuHaXl9ehTzyJFj2XXTMq6a+wL/OnEXlt85ObGc+djYCJlAnZtyoYimWyuj4GRQ6YvuAbSvWYvH5aZ14cKofdlGJulNl4pLdf0HH9D6c5xozQWJK+igMgtNzM3yekZdK0ZahOkzBn9745ew7ckPaq7cI/ppzgzbDu4JQP8KLXLCXmP6JXw3Bvcq46Q9R8a9nyKfxwnjNJ4UztGtlVE8Gmd9AUDtzAS9pmxg/MCtDBmZmRsSfGibH3s8fqFWKvaICAym58xgy9msN7jh1tvw7rKraf4Nt97Gluefd1qs1Ig3d8tAkd7K3yvCKWH0gB4AHL+7Fqd41xF9+P76w3hp6r4JT22hHZLXCKNziCJjdG/X7ngvWyiETQCRazo7jtyNs78yyZudsRoZjLYeGZuO3HFgqHnhhcT7ig0D+rlSQckIRR+DNTXNTN55KAN7lobNIxozQIuq4BqqOSacd8DWDO5dphXtz5FrzBrBxlN3vw+ZJcdqWWeJaVYwSQ/mlW3ttPz4o5NiJU+sJcCB1X/8Y3ReszGjBB9a25IlcfdbMXn5N22irXJ5p2KP7CllmJw30yWl6Az3MsZx6+taWLG5mZ2G92GcwRvugG0HhgKeHuoagve2iRwwbmCqUpuT6/faQPvKlXhcblrm62Zpi71Ohb10eWVk2VMuEv2FrHv9dcO4Ua68nOk7MMQbnG2c/VVoPC021iqblWee2WnXsXG+k7+xiXU33IC/oSFx5hyg7u238bjcBNpsjn4Vp9IPOiuMGVDBKdtW8Pjqtyn1tTFKN9EFKSuO8IizsxLOgwo9aE2oe1OP2RzP+1PhGF1eGVX9818x94WiW5t9MCKzt6ZjnTMracgUHBg61sZau8aAxZZvoKWl04HBxjGjmueeo27ma2x+IjzObq7O+K+6514A/Fu2JMhpEcN1ml3zKz+s5qzp3wNQXlzIpgceYMTcL3l5mzpuOnoHe2SIi309o4516+hYu9a28qIo6DTJA+aBhRWO0+WVUXtlZedGRAVa91ac1SsybGVYeuhhCU1jQcI/kkTedDFcquN8aDLG/CIjxmUqEqLf97blldH70oxUvfnRRwm0GNZWskEZSb+f2jffTJwxFew2X5ktriglV7/W6QlZUCBCGUf365FwblDMO5glRb/00MNYetjhjpUvosxyaswoG3R5ZRRGrI/JrILIgs278uhjrGVMxrUbzGuXOB9a9f0PJCyyzmplLWXI7NH0pR4h2pZ721lGs3FMz2JrNizadQRbnn2W9ddeZ37c4sXWxEsBK42AIGEKOIIvFoVH9Nh+SK/kTE+JlE4yzy9He6phRLqhK2+6rNC9lFEs/L6opLhr+WQAY88lqhcS5todv2JYdd4fzHuAccaMAjaOw8iWFnyGAK0ArQsWaPt8vqQq4DBiXbfFCiRetGv/5timtHXXXGup/FRYNnGS5bzBBkPHmmjz1Yb61rDtoX3K7Jk7k0zlnKITgPT7Ux5X8zc00DhrVgpHRpiRQ2Oc2THTta9Zi88uc24e0b1cu2NUYIFWs5ff1P5hrzzxMJyrbfmKlOVoX7qMzUuXRRefQXt4wBgiCC2gZ+NXX7P6/PMpHJSiF1eayih+Dyc7LeJE40mBlhYKysupfvjhUFrjZ5/RGrG0+XJ99VXPrRM75wTZ0ZvJwPu//vrrqXvr7ZSWa197xZU0zZ7NtrO+oHjIEOsHhm6SHmU+0vszwyw7XDNJZnTJ+hxA9YwAadIS89dkuWVidN8uLIi5L2WTV5bt4e0rVwDgr96kJVi4jo7162n86ms9v3meWFe1efpTrDj1tNC2r6oq9omcqHQtzguywqb/eyhs27dufdj2Y19W0u4LUFggQhVr9LhI8mSicq57620AAm1ttC5alNSx7StWAFrMuaQIKZ9g+CplpssGShkBgbbol7fq7nuyIIkBY8+lIHzAWQZSNG2Fl2JDGWngj90za1+9mlavNyp9+fEnsPr884HwOUOtvxhC3uj3beVZZ7Ph1ltDyVX//GdYoyNW3D1tn4PKKA3PmNrXXk9DgCQG5WNefwpmOhMav/wS36ZNcQ9ff+ONLJ9ybHLmqhQVfVToIhWbLit0A2WUuBdRMnKktZIy2FJq9wX414dellY1sqYuQlkaKhR/xHiMZbLsthpPoS777REsP/a4qHR/jRZBwDiRFiIcLvQxqObvv6fmhRdjnkOUlFiW1eytGXz11ZaPt4stTz1lOe+31x0WnpBMzyhWHhveGRkIsHrqBaw86+y4+Vp+mqedsrExbj7zkyT3na6/QV8DKkFg37alS7V4lSYNJUX6dANlFJuSbbcBoHj4cGsHSKImWTb97394XG6tgrSR7yo38fDnyzj83lmcPWNuhBydH0mqC4BlfT5OZM/IpKHQUVVl2jJefdGFxOphJJ6sq9F3ypSw7fY1a6h9/Q3TvGbLapeMHUPfU0+xdC7bKLS+XMPQPmXhCSJ8XCQlUnpnIo7Ry2iP480IdI7jJKMA07WA6rLFik3X8MknANS//0GaJ8odPC73RI/Lvcjjci/1uNxR3jkel/scj8td7XG55+l/5zslS5dXRr44nlGh78TiR1bz0oss3msC7atWhdLq3nsPgOa5c1IV0ZQ/Pv1D6HcgYgJuOs4HrR59UDTbcygsmFSWHvQbluy3f/SOgIx5vK+6mralS033GYkc/1jx+1NYf/312r2NuDUB00nRgnTCCyUyU5lh1cPzpanaAoeB9nY23Hob/tpaW3pGSb13aSqG4JpCWXEi6CbrGXlc7kLgYWASsANwqsflNpsR/bLb6xmv/z3hlDyOKSMhRJkQ4nshxM9CiAVCiFv09LFCiO+EEEuEEC8LIazbS1KgLd4gaPCjs6iMOlZqSqh9ZacysjIw3NDagZSS9jVr2TJjhqVzGWvEQGSl5w9w8n++4YqX51ksq5Plxx2vF5/H9vA497ry6GOoPOrohEVU3XVX2Ha4uTPx+2BVEQV7oDKizLVXXGnp+DAsKqN9th4AQP3bb1PzwgtU3Xe/YWXYdHpGKRySqmdegnEbGQjgcbnZ/NTTyQuViKjAvsGTdjnlNAFY6vZ6Kt1eTzvwEjAlwTGO4WTPqA04VEq5KzAemCiE2Ae4C7hPSjkOqAHOc1CGMKLmtAQriiRfsuoG4xhO/HVb6ls72Pnmjxh73XusOu8PbLxzGr6aGrY0xvf4MVZ1MrKZKQN8v2ILr/+URoiUbH9Y6XiVSRm+oqyNeHfYkcr/fpwwn2/zFnofdVTiAoO9iQj/heD4VzJEeVXGwF9fr1XUTz8dkiG0emla/gvWGzAxlbXV9y7esiMQighffe+9cYvx1dQgk41PGQoP1CWUT5EQYo7hb6ph33BgtWF7jZ4WyQkel3u+x+We6XG5rQ2wp4BjykhqBEcfi/U/CRwKBJcKnQEc65QMkay58CLzHUm+dFe+Oj+0fHPwo9lw0010RLgLXz3zZy58tnO8p21Lbej3xc//FPccJX4fHx4/ipem7sOLf9w7XNw0B5LX/e1v2Y+7FVlXJaGcZCDA5kcftVceA32rEsfma/7+e3rsvnviuSCxTF6+6InWCREFVN2T2MszOI7YbpxflpRrd+bmGa04/YyQ12Proui5X1aikrSvWhU2tmhUIkv23Y+1VybXCw2ZQ7uGmc4npdzT8PeYYZ/ZRxd50e8AY9xezy7AJ2h1tiM4OmYkhCgUQswDqoCPgWVArZQy+CXG0sQIIaYGtbkvlQ83GZL9yATUt+gD5YZKdOPtdwDaTPrKa67nlTlrWPPTAt5/86+4N6+gqbVDP0SweGP8KAfTZ91D4KyT2WHxHEb2rwjbN+OrzsHfNT0HJSc7UPfa6/y6ujZxxlwlw4q00MQ8JoxrHMUj8t3SN33t1hwtjLQtXszmxy2Y7COD/BoVfVrzjFK475GnM5zf39hEy9y5Ia/H5UankiQ6zsuO+B1L9tu/MyBvBA0ff5KcsKExoxjXmz+rYyRiDWDs6YwAwiI2u72ezW6vJzgn4nFgD6eEcVQZSSn9UsrxaBc5AXCbZYtx7GNBbV5U5FCgiCTHjILc8b/HmXvLP1lT09zpEGAop33FCtre0jyzdq/SWnsHrf2ZAn3/l4vjTLjUqWiuB6Bx9pdE3iKhbx84biAjGlPzpntitknQ0gySzuB/svOsPOvrTdNfm2shOjkxQhdadA2vff0N3SlCe2abfvyZ+574gPVbUnBZtkhUhGshLMema120iIYPYniLpRIOKA7LJk2Mc3iiAMBxZElR34Z6VLHGjNIsPwf5ARjncbnHelzuEuAU4G1jBo/LPcyweQzgWFiIjIQDklLWCiG+APYB+gohivTeUZQmzigpKiOAoe++zIEF43lv/nxDavxyCqVWiV7+4o9YbV4VlJXTPCfcU69A/0h6lFh39Y1EZNkeHmhuDk9IxkzXktwM+0kPzOZ9k/QrX/3ZND2SAiGinqy/0Nqns+Gmm2joCLCpsY1+QO1fLmUiUFtSkejQlIlaYBEsx6ZbPiWO1dzknWlduBB/XR0V+yZerjyyjFD0DVNSUEY2BTcWXWvMKCZur8fncbn/DHwIFALT3V7PAo/LfSswx+31vA1c6nG5jwF8wBbgHKfkcUwZCSEGAR26IioHDkdzXvgcOBHNc+NsIM46Ds4S9HBK5aUrDvh5763EEx9vOGoHqn99m/KSAkr0gKwFUkZ7yMWgoLwsKoJ0gZQc1s/PdfsPI3bs5gTlkt0xo+oHHgxPiHM/Otato6BX50qlyUyEdKpCWVrTZm5fNuGnBauINKaWBBw2PXcYiYEAACAASURBVBsRNq1ya6LIlh9/AhAnjlqq999izyjGiJyexeCR2tZG7aszKRrQn96TEgSkTeTa3XXMdLi9nveA9yLS/m74fR1gHsLeZpw00w0DPhdCzEfrDn4spfwvcA1whRBiKTAAeDJOGbaz7m9/o16fG5TsPKNERFZ8Uw/aWl9LBk7ZcyQFwUCMSZyveNSoqLQCKfnrU9fQeqLFJSdMOHS1vUupF/TokThTiiw99DAqp6Tmcfr8d6ti7tu21pqZzuz9KCixOGYEfLEkugfQw2fziq/xECJ6mQSLNH79dagXa3y/Wxcu1OYvxTunCbFO3/zDD+EJJsdveeYZQ0EWekaGPOuvu56Nt9/O2r9cEUOC6HIiI1509Z5StnHSm26+lHI3KeUuUsqdpJS36umVUsoJUsptpZQnSSkz+FVqg/ehOR4hM13n/o4NG6LMYlZZsT784xzjq8esGVVg4aUu23UXAAr79o3at8vIPgDISFOXkQTjbLtVW1vIL1eIDAZqlRve/DXmvgd2tDhXyCSqQ4HBgaHiwAPjH4/Iqlm0Zc4copZJsMjq885n/Q036Md2XsPy409gxSmn2iQhrDzzrPAEE2W08R93dm4E72e8iBuGe970zTeJhQi533eeO9DUpJRQhujyERhi4XG56Vitu9gbBiqXHnwIK884M6Uye3l+Dhss3+3qczp3Gl7oF052MWvqbnHLav1ZG4tae+llUfsKLZhcMrUe03YpKu4oOjqSnw9igT03emL2fIf2LjNNt4LRgtPv9NNiZ9TpUZq91VralixNKxxQ5wrE2rG+jRuBzijZcYnyJkxynpHFYsEkxFCKXpeioPPci/bYk00P/zulchTJ0W2VURg2tnwmPTA7PMHko/Kffwbrj0tjorOFBr0oS72iTYbg5Vl2dY7DmssuT7uMSG775kmeGB4jmGwaLuIBQwMm0XhMQAiKC7I80BBaMC75dz3QpPfAk7pf6cYDSpQhnjdd6o5J2rnDT17/7rsAbHrw/0z3K+xBKSPITDQCG88xdmDPhHkKMqSMCioqGHjpJYx+/rm0y2r8/HMbJIpmeAz3d6tBVc0ISDh/xhzufN/Dqi3x3Uh+v/gziksdjXqVGL0CjZyYbYWOdbrDayrvcKo9o2TLNcuSapmR87QSnMtfV0eLcRkTm/C43N1qxVeljHB2YHLjHdpE2JoXXrCtzLIB/RLmsbNnVNi/f9z9g/70J0q33daWc9U222+q6x0wLzPuAHwCfL4An3g28uisSlbVxFdG/dsa4i/ml0FqX3wp5WMzGbS0bWFqkS3C9sUKJZSohxfZizU5l7++PjSfa9W5f2DFSSfHLzMGVXffjcdlNv1So9UBJZerKGWEFj7Fn8q6KVmisP+AhHlkxKTMd8fsk/CYbT//zDS956GHmKb/NGgcW5rMK/rCPn0Sns+M8bcmjguXLG3fmQ9eb5k+PeUy5xkiWDxuYQJx2U47pXwuOxCRrf2USF8Z1b6ezgKBBuIoI9neTsNnn4fPaTLEAvTusCOBljgNiAgzXGSQW4DKI49i6WHa8uCtCxdq+VIw+25+Ir4zcXdynlDKCKiadheVkybT9O13aZVTmqm5IxYCVjZETCH7YUjs1leQ4mHDTNNjjYlcv99Udr/tYwImLebRL8Ze2C7TtC1JvKREsjS3dT7rqEC2JrT+GturLzOkV6nVvPoqK0873foBJg4T0udj4623pSVHILhab5xKevnxJ7DmT3+i6bvY33PjF1/E3GfF+cdsHbGU4g0mQimj7oevuppV55yTdjmPDEk+PM/sEeOTyi/jLNkdpD4QsVR5nEHX3pPjTwL8dPfJlO2yS8z9Te3aR7jtrFmhtNKtxyaUMZ+p3G73qLT1Y3e0p/AkFtGzyqZ/PxKVVnX//ayaOtUkdzQbbvx74kxGzF43G2IKLtp1PK2LFlvqMfjjrBnlM4uaLiXtK1dGT6q2qg8SjEFKKdn89NPJRZzvPrpIKSO7GfPoXYkzRXD+Ry/Q/4ILLOevfvDBhHmqIqxn8SI+DL/33rjRp2/4bguHbH1W9A69zPpWTRkVDxmcUK6uwL0H/5FfyjqvNXhvm/z21Byxeqh2se666wHY/J9HafpydoLc6dFhmB9ml8mpdcECS/niOaiY9dBafv2FZb+bSNXdEZHRpbQke2TPqPHLL/G43CHl0/zDD1RNu4v1N9+cWPjOUpPIm98oZZQDFBSIsLkNCbFgDqgLhD/aitL0Xa9j0dCauldaJD06Ug1wlDwFKY5rjSlsDxsrmz9oW97c+kCG/+MftsglHOgZGal7w3x5dSdomWdYANJOk5OFsjbccmtSRXasjBGtQ8qwXl3Hms5AtO2rVoUaZZHrpW16VFutIThPK6gc/TVJOM4oM50iUwTn59gzwNxJa2G4A8PDZ+xpa/lG6ls6leOoGTMY87LmsbXNRx8mXdZr795om1xO0TxgaNh2QBTw6C5T2H3P7W0pX5SX21JOzhG5uGU6ZLKSljJM0XSs74ztvOyI33XGyeuIaCSGhs0kvpoa/EE37WTMlUoZKTLF8AfuBzrHbQr7xXbbLh4xwnK5m8pTa/UbWVsxkHt3S+yyurG+M4p2xd4TKN91VwBKRo2iZMyYtOVwjBQ/9HVjd4hK+9vkxA4iVrFjAnGm8dfX01a5PDQWY+b0UvuaTZ50kHFlZMUagS/cQhBcX0lKyZJ992PdVXpg5SSUkfKmU2SMosFDACjddlvcXg8j/v2wLeWu7TmIPx/cGdFAJBHYM8jMy+/n49ETEua75MXYq9aKHlorf/SLL1Dxm4OSlsFRUhxQH2ISRqhvD/sUSKZCOdlJx9q1VE6ezJJ994uZp61yWcx9SSFlRpWRRIYtedIyZ655PovedLEUzOIDD2T5iSeFpXWGYur65N9b38WIHCsSRfZUah0FRSzrO4KiNz9g63f/a/m4obfcEvp9x3Hx58b85fDtANhpeO/YmXS374LSUkY5tFR4yZgx9DstcXy4SJJZisJI/4pOE+jknTWTXUmRjZ9SBsLNGCvOmpdfSdstOd6k3uDkYqsLElohkz0G2dTMkgPiB8OFOMooajEsP80//hh2DVJK/NWboqYAhEIQdQOUMso2EYPVotiegJodBVo5A0YOo3SbbSjfeWdrBxqUY2lx/IH0yw4fB8Cva81XUgUYft+99D3l95Rub894Ski2ceNCv0c8/BBD/+7sWNPw++4FYPDVV7N4Y6cSC/aSBvYsBWDUMzPof+656Z2soMCwMqtNRCg442TLDTfdxJKDD0mrgl99wYUxz7d4n31pnD2bAtuUkcyok5lVV2zp6xxXkh0dMRsVLfPmsfK00/HuZPgmbXB7z3e6tDLyxZlnkCtEmmTs8qTqKNDKKS7UPoiCGIPihQMiojkY5jAVRfTaVvWM7brtizH3qXTsWIbdfDOisJDnvl2ZUG6rlI7rDD9Uus02tpUbi14TJzLi4Yfof/ZZoTpmcK9Srpno4oFTxrPfNtp9rJgwgR57JzZtxqVA2NqLAKLMWmFebmhzcjb8Pcm5RDHY8vzzUWkbbr/d1mtaNjH2kuXZQupjRk3ffod3511oDt7jWEre6NChlFHXVkbzPattKadoKwfnfUSuOxRHGYmyUsvFBntGxYXxH/HIRyLC4xuiOxRGKKNLD76c30+6BTNmL41W/PPX1LJoQwOtHdpHN/3r5VF5UkZf9jtV92wzBl58cXTan//MoMsvQwhBr8MOQxQW8tiZe3DFb7dj9jWHUFZcyJTxw8MG7HsdfDBj3059AWMhCpCt4Uur9z3pxJTLM8MsAkHzXHsWXNx42+1RvYKOlatM1+ZKBX9dPTJeOJ8s0fj5F7RVLqfpWz38lO7KbWUyfXdyVIhFl1ZGc556Oa3ji0ePwu31MO4z85htRsp3j56Rn4geEyZEe5vFaSENudb66r8+vWdk7N30OfbYqHwFFRVh28b4WpHrJrUVlVBfGp4/yLlP/RCVdsxDX/O7+7/EdeMHjLn2XSqrmyzLn4j6d95hxEP/x9avvxZK2/qdt+l9zNEplznokj/jWhg+oXLQny9m4IXhJighBJceNo7SotgNh7LttktZDjMT3ZAbnXd5l377wtkEIpQpQNFgeyZFV/3zn7aUYzebHnqIysmTU/OGVMqoayuj8pb0gp/GnARnQq8YwUTjMfDCC6JcYOOF+kkm+Og+22u9OWPvZuiNN0SX2TvC+cBw/gILE3EfPNV8kcBkWnoyxfGRXocfTvHw4aHt0nHj2Or22+MeM+bVV0yVsijVep2Z9mQb+6bJBFSTsQanJ8IC4LNvHlCkGRDoNovUpWKO9JuFJ+pmdGlltOOh+wJYmitjiqGFM/Lxx+Nm9dc3JF+8ybyhuKaMGAOiZmbEv0zagZ9vOiJM2Zm12IoGDQo/he4CXrFftIvuV9ccEvIeC3LMrluZytTUbl6xfTu0c47O0FtuYZtPPmb4tDtN86ZEglZp+c47s1XE+cbMnInr5+jK08xslwxjXnqRbT7pjEJu5sRh9g4YPSxHPTWdUU9Nz4gyCi6JYAe1L0VbJbqLm7KlFXAjaPj4E/sFyTO6tDIa21urmHY89neceUR0ryARxhhh8SajAgQarSujcbO/ZNzXX1EyalT0OYcMjql0YnX/+xuWSS/o1QuAorJS+pRH5LdQofU9/ngG/ukiRjwU7VI6ol8P/n36HlHprqHaOYO9oate/ZmdbtKiL+w6Mly5Vtx9f+h38dAhlIwYQa/f/jahXFZJtOqqKTF6cYMu+XNaspSPH0/JiBEUDR3K0FtvYfi9ETHPCgsp7NmTMTNnhqcbonEUDR5Mxb77mpZfbHh/MrWyryIxdSlM7g2ue2ZGoN3+Nb5ykS6tjDbcdBMAl0zckdKthnH0MdO4e/dTLB8/+pkZod8FCVbq9DdYNwkWDRpEUaQXmwHjOFLFAQeEfsdSRkZbvNAdIkxNBREmqLIdoiMJiJISBl16KQU9eoSlf33toTHlnTJeM5W1dPhZVt3Iq3PXhPYdv9twnj9/79D29kN6hX4HQ6wUlJfT/w9/iFm+GZHyxWPIDfEbIiVjRodt9zz4YAZdcUVS8sRj3Bef0+/kkykaMiQsvccemmIv32lHtvngfba6524g3FnB+MxHPTMjXOkY9K7RXBlk6/fetUP8EGbvSy6Rtkt9jtKx2h5HrFynSyujIKK0lNlXH8K8247kL/+6PGH+YdPuZMxrMyke2mmSCo4pBNl21heUGebu9D3hBEuyDP7rlRYE1mqZITfeENYqLuzdyzR77yMnh34HgzGaKa6o8akkJmsM7xs7XtpWfbUK8te19Rx2z6ywfSP6lbP/tgND5r3thvTqVJ4GeYZcfVVCGUSPHqHeXTLrJfU7PfaE2MFXXUVhr/D7OvI/jzBw6h8tl2+ZiB5YgeF5lowZQ58jj8Tt9dDb4LZsdDCpmDCB7efO6TxmxMjQ7+H/+if9zjiDsW+9ycA/XcTIxx+ndOutbRN92B232z/3yUaG3nwz/c85O9tiOEMGJkHnAo69XUKIkUKIz4UQHiHEAiHEZXp6fyHEx0KIJfr/xGtopytLSQkFBYKepUXsNLxPQlftogEDKN8xfG0aY+U+4uGHKB4yhDEvdM6nqNhnb0p3iB+frMdee/H/7Z17kFTllcB/p18zPdPzYJ7MDAwzIDAtEAXUWAExKiBofKD4JroVDJUVNZamBAPZWnDZqCT4qLWMbGCDmqiAMRjjAzTZjYqiSECQnhhxNY4SdUEEBxCH+faPe3vo9zQz/RzOr6qre+69ffucuX37fOf7zqPy2mu7lTeYoFpy1ln0u/IKiiecRv+FC3BVVVEzd060fiLUzp9PydQpXVng8RZRC0eMoN/V9rReEm2kTxhQxq1TEiesBhM+L30wvKPq6MZyzhhuGZ6fX3IiL916Bl6Pk0q7h45nUFPY8QPu/4+4n9GybSstm97E9+1vA/ENcyi18+fTcN+9iafuugl9TyUOe0BTMfN7VN1wPXW3x280VzbdGtxEetCha0cNS35Owz334G8NUHj88fSfP4/C4cOpvvFGfKeNJ5W4qqtz+kfRO/rEqPXPeMS6h3KaYyTSLjXp/rHpAG4xxmwSkRLgTRFZB/wT8KIx5g4RmQvMBdL67YiMkBry9NN8tWMHUlDA/55/QdTxkaXg4cj0F1hGAqK9j9LJk/lse/y+QMmOLPsvXEC/GVd1eWaNS5d27au45hr2Pfd8VLRSxYyrqJhxFYERI2PKFqT5idUcDAT4/KGHk5JlzfXd/6gVuqP1ev+Oc8P+9nqcDKywptb6XXUlpedMxVVREXaMe+BA4mL/CDf8bDHtGzYk1fOnYsaRzqSO0tKY3qs4MhClFvwsj4eWbVvB6ex2bavu9tupi9P3pt+MGXz+yCM4y8oonXJ2GiSNxuHzZcwYuQc10rhsOTsmTkz6PeJ2dxsJWX7JJexZtYqSM89k79N/yIHuu0lyjBijtA0LjTE7jTGb7Nf7gADQAFwABBdjVgDRcbZpxlFUhHfUqLi5II6C6ORS8Vo/pAX++N5P5axZDHt9A0Oef45mO/+l+ak1NC63S68keTM7Cgrilu8REQY9tIKhr66P/WbbkCYKLy0YNozyyy+jYcmSpOTpjsKIskF3Xpy49JCIRBmiWJScfXbXOkvwx9vh9VJie0fxaH7ytwx96c9h24a/voHaObdGy5Ki8kvJIi5XUkEWIhI2AAqldt6Po/Kh0o2j2Be7e2svidUuo/q66/AMaKBp1aqubUNfTtwEMDJFYfDTv486pnDUSPytATyNjTQ9/hjDNm7EM3gwOJ00/upX3cqarTUpc4xUZ8jInSgiTcBoYANQa4zZCZbBEpGYmXAiMguYBeDpYRmRpidW81UggacSB8/g6PIyTl8xgx79TVhNNLDWHIKLx+Jw4Cwt7boxgt1Tv/zMbkWeoptZPB5c3fxPEiXeidMZd9TdE7whxmh0YzkXjUm+1UUiPI2N1M65lQNvvXVU7ytMMGCIJNmpnVxCRJIe2Az4xQO0/eCfAev7GGjpWasLp68Y37hxHNxydNeiOxp+tpi22ddTdMopuKoq2fvMs13VNbyjRtJw370c3r0bV1UVYAXrxCrK6ogwRp7QElEuF3R0hA3QxOnE6StmSEiQh6OoKKw6dyTVN97Awe3b2b9hQ4907THHhmOUfmMkIj7gCeAmY8zeZENvjTFLgaUAxcXFPboc3hEjotZ+kiFe++yi0dEJnpUzk4gCs6XvUdhxAsqmTYtKlnNWVnJ4167MJEnahHpGs04b3G0JorhEXmWnA3d9Pe762LlMvaFk0kT2rXsB3+mnp/zcuYRv/HiksDBmwnPl969l13/+Mmr70PWvYA4exHR2smOiFXbv8Pmomj2b8unTkYICvnrnHbwnnMChDz7A09TEX0cfXQUS8XqpW7igK4zd4fVSMnUqe595Fu+oI9XiSydPPiLXq+txeDz8dWx0o8jIIqxh91rQq+5mAFc7bx47582Lua/geD8Or5cB99/POyelr1FlKIOf/j27H36EguPSX3sxF0irMRIRN5Yh+rUxJhh8/4mI1NleUR0Qv/Z8BhC3uysCLW10zfmm1hjV/zS6zXXzysc58HZmp3BCPaM9B3r+v3TVWF5K8Jqkcz2nYckSOnbvzstGdkeDuFy0bI7db8o3YQKH93xB8fjxHNj0JrtXPAQQcwrV4fMhTmfXwMBlR3kGvdAh69biKC7ms3vuZc/KlXHlaVyxAk9zE67qakSEvc88Y8np9VI6aRKlrfFnMlx2rl+B39814zHkhXV44jSddJaXW+0r7Pu7IzhDEYfyiy+i/OKLONTWxv898AC1t91GZ3s7X3/0MQVDrMhEpy92Oayoz66ugsOduOvraV69ii9fepkPv29FaJZNm9Zt6/f6xYspOO446hb8a1Kf1xdIZzSdAMuAgDEmdHHiKSAYg3kN0POKkilgyLq1GfgU2xhlIDTW3dAQNprMBF7PEaNxcS+m6Fz9+jF881+oCHqbCWq/9RZxu3FH5P0cS3iamyk6+WTqbl9I6dmTqZmTOIaoO0/bM3AgroqKmK08ir5p5Zk1P7WG4m+egrumpstz6bQLnsarKh+LkjOtnLehr66PMkQlk0KCHiJmIg4lWd7LM2AA9YsW4fT5cNfWUjRmdFgprkrbqLRsjZ6ybFy+jLpF/8bg3/2OYetfoXm1te5VMMya3vedfjr1P/13Gv9reczPHvTIw9Qvvouy876TlKx9iXR6RuOA7wJbRSQY+vVj4A5gpYjMBP4OXBLn/RkhNJeo9LzzjiqZMlmKxo7FO2YMNUnk0uQjBSGN5XrbZM5RWNhVHy+TkW7HClXXXceuZcsY8uwzYdvF4aB5zRq+butdgmVo0EXpuedSc8vNuPr3jxvp1nnAKqh6NMaoavZ1VFz93Zi1GhvuvrtrpqNk0qQwLy1VeUg1t9xMzS2xk6JjldECcNfWMnDpg3jHWInOYfljp51Gxz92UuD3U5ShKcBcJG3GyBjzMvHnpc5K1+f2hobF6akG7CgqCstJyndq5szBMyikFE2K18IcPh8AzrIEHWSVHlF94w1U33hDzH2Fw4dRODw8wrRp9Wq+bmuLeXwiyi68MKoGYCw8zU0AeMcmv+YkDkfcosHicnUZxP4/mU/V7Nm8a68Lxiq/1VuqZs+maOwY/v69md0Gw/gmTOh6XdjSQuGoUTjLyxn4iwcyusabq0g+9NEoLi427e2paz8Qyf433qBj166wzHfl6Giaa0UlReYX9QRz6BCfP/YY/a68Mm54s5K7mI4OcDiSroB+6MMP8STKMeslwQhCf4L1qN7SuX8/OByWZ59DiMh+Y0xyC11ZRo2RkhLWbf+Ew52GKSP7d3+womSQ9tdf5+u2jyi/aFq2Rck4aoxSjBojRVGUoyefjJHOgSiKohyjBFr8U4B7ASfwS39r4I6I/QXAQ8BYYBdwmb818H46ZMndMryKoihK2gi0+J3A/cBU4HjgikCLP7JPyEzgc39r4DjgbuDOdMmjxkhRFOXY5BTgXX9r4D1/a+AQ8BhW7dBQQmuJrgbOCrT401IxV42RoihK38UlIhtDHrNC9jUAoYllbfY2Yh3jbw10AF8A8TuD9kbQdJxUURRFyQk6jDHxMmljeTiREW3JHJMS1DNSFEU5NmkDQhO8BgAfxzsm0OJ3AWXA7nQIo56RoijKsckbwNBAi78Z+Ai4HLgy4phgLdFXgenAH/2tAfWMFEVRlNRgrwFdDzyP1fx0pb818Hagxb8w0OI/3z5sGVAZaPG/C9yM1Zk7LeRF0quIdAIH7D9dWC3N8xnVIXfoC3qoDrlBLurgNcbkhdORF8YoFBHZmGBBLi9QHXKHvqCH6pAb9AUdskleWExFURSlb6PGSFEURck6+WiMlmZbgBSgOuQOfUEP1SE36As6ZI28WzNSFEVR+h756BkpiqIofQw1RoqiKErWyboxEpGBIvInEQmIyNsi8kN7e4WIrBORv9nP/eztIiL3ici7IvKWiIwJOddhEdlsP57KNx1E5IwQ+TeLyEERuTDf9LD33Ski2+zHZTmsQ4uIvCoiX4nIjyLOtVxEPhWRbZmSP5U6iEihiLwuIlvs8yzINx3sfe+LyFb7ntiYbzqIyPCI+3qviNyUKT3yBmNMVh9AHTDGfl0CvIPVW+MuYK69fS5wp/36HOBZrAJ+pwIbQs71Zb7rEHLOCqwaUEX5pgdwLrAOKwmwGNgIlOaoDjXAycAi4EcR55oAjAG25fj3KaYO9nXx2a/dwAbg1HzSwd73PlCVyWuQah1CzukE/gEMyrQ+uf7IumdkjNlpjNlkv96HVZaigfA+GiuAoIdwAfCQsXgNKBeRugyLHUaadJgOPGuM2Z92BWxSqMfxwP8YYzqMMe3AFmBKLupgjPnUGPMG8HWMc/2ZNBWFTESqdLCvy5f2n277kZGIpVReh2yRJh3OAnYYYz5Im+B5StaNUSgi0gSMxhrB1RpjdoL1pcAadUDiHhyFYvXseC2T01uhpECHIJcDj6ZT1kT0Uo8twFQRKRKRKuAMwqsDZ4QkdchpequDiDhFZDPwKbDOGLMhfdLGlaGJ3l0HA6wVkTclvB9Pxkjhdymr93UukzNVu0XEBzwB3GSM2SsSt5lgov4ajcaYj0VkMPBHEdlqjNmRBnFjC5YaHbC9i1FYBQwzTm/1MMasFZGTgfXAZ1gVfzNas+sodMhZUqGDMeYwcKKIlANPishIY0zG1sBSdB3G2fd1DbBORFptrzUjpOq7JCIe4HzgthSK12fICc9IRNxYF/vXxpjf2ps/CU5d2c+f2tvj9uAwxgSf3wP+G2skkxFSpYPNpcCTxpiMT1mk8FosMsacaIyZhGW0/pYJ+W0Zj0aHnCTVOhhj9mDdExmZLoXU6RByX38KPInVLjsjpPg6TAU2GWM+Sb2k+U/WjZFYw4xlQMAYsyRkV7CPBvbzmpDtV4vFqcAXxpidItJPRArsc1YB44Dt+aRDyPuuIAuufAqvhVNEKu1zfgP4BrA2R3XIOVKlg4hU2x4RIuIFJgKtqZc45menSodiESkJvgYmAxnx7NLwXcrKfZ03pCIKojcPYDzWFNVbwGb7cQ5Wn/UXsUbULwIV9vEC3A/sALYCJ9nbv2X/vcV+nplvOtj7mrAaXTny+FoUYg0EtgOvASfmsA79sTy8vcAe+3Wpve9RYCfWgnRbpr5TqdIBaxDwF/s824B/ybfrAAy27+ktwNvAvHzTwd5XBOwCyjIlf749tByQoiiKknWyPk2nKIqiKGqMFEVRlKyjxkhRFEXJOmqMFEVRlKyjxkhRFEXJOmqMFCUCO2/qZRGZGrLtUhF5LptyKUpfRkO7FSUGIjISWIVVxcOJlWMyxfSivJSIuIwxGS2LpCj5ghojRYmDiNwFtGO1wdhnjLldRK4BZgMe7On/bwAAAT1JREFUrNp71xtjOkVkKVa7CS/wuDFmoX2ONuBBrDI89xhjVmVBFUXJeXKmUKqi5CALgE3AIeAk21uaBnzLGNNhG6DLgd9g9bfZLSIu4E8istoYEyxH1W6MGZcNBRQlX1BjpChxMMa0i8jjWE0bvxKRiVjN0zbalZu9HGmhcYWIzMS6p+qxejoFjdHjmZVcUfIPNUaKkphO+wFWLb7lxpifhB4gIkOBHwKnGGP2iMgjWPX5grRnRFJFyWM0mk5RkucF4FK7KjwiUikijVgFPfcBe+2WAmdnUUZFyUvUM1KUJDHGbBWRBcALIuLAqub9A2Aj1pTcNuA94JXsSako+YlG0ymKoihZR6fpFEVRlKyjxkhRFEXJOmqMFEVRlKyjxkhRFEXJOmqMFEVRlKyjxkhRFEXJOmqMFEVRlKzz/1178uHwLEvkAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff1c0f544e0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Walmart Stock Plot\n",
    "import matplotlib.pyplot as plt\n",
    "import datetime\n",
    "import numpy as np\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "x2 = np.array(pd_data2['Date'])\n",
    "y2 = pd_data2['Open']\n",
    "y22= pd_data2['Volume']\n",
    "\n",
    "\n",
    "plt.title(\"Walmart Stock Performance Over years\")\n",
    "plt.xlabel(\"Year\")\n",
    "plt.ylabel(\"Price in $\")\n",
    "\n",
    "plt.plot(x2,y2)\n",
    "\n",
    "\n",
    "ax2 = plt.twinx()  # instantiate a second axes that shares the same x-axis\n",
    "\n",
    "color = 'tab:red'\n",
    "ax2.set_ylabel('volume', color=color)  # we already handled the x-label with ax1\n",
    "ax2.plot(x2, y22, color=color)\n",
    "ax2.tick_params(axis='y', labelcolor=color)\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next step is to divide data into training and test set. This has to be done in a chronological order. So, data is divided into:\n",
    "- training set from days 0 to days 'training'\n",
    "- test set: from days 'training' to day 'training+ test'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Test Data\n",
    "pd_data1_test=pd_data1[0:test]\n",
    "pd_data2_test=pd_data2[0:test]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\n",
    "vol1_train=getStockVolVec(stock_name1)\n",
    "vol2_train=getStockVolVec(stock_name2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "pd_data1_test=pd_data1_test.reset_index(drop=True)\n",
    "pd_data2_test=pd_data2_test.reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2005-06-29</td>\n",
       "      <td>151.25</td>\n",
       "      <td>152.19</td>\n",
       "      <td>146.07</td>\n",
       "      <td>146.36</td>\n",
       "      <td>36597400</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2005-06-30</td>\n",
       "      <td>147.17</td>\n",
       "      <td>149.46</td>\n",
       "      <td>145.52</td>\n",
       "      <td>147.07</td>\n",
       "      <td>30188800</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2005-07-01</td>\n",
       "      <td>147.52</td>\n",
       "      <td>148.12</td>\n",
       "      <td>144.61</td>\n",
       "      <td>145.62</td>\n",
       "      <td>18455200</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2005-07-05</td>\n",
       "      <td>146.05</td>\n",
       "      <td>147.99</td>\n",
       "      <td>145.12</td>\n",
       "      <td>147.85</td>\n",
       "      <td>14988000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2005-07-06</td>\n",
       "      <td>148.65</td>\n",
       "      <td>148.80</td>\n",
       "      <td>145.69</td>\n",
       "      <td>145.76</td>\n",
       "      <td>16000600</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Date    Open    High     Low   Close    Volume  OpenInt\n",
       "0 2005-06-29  151.25  152.19  146.07  146.36  36597400        0\n",
       "1 2005-06-30  147.17  149.46  145.52  147.07  30188800        0\n",
       "2 2005-07-01  147.52  148.12  144.61  145.62  18455200        0\n",
       "3 2005-07-05  146.05  147.99  145.12  147.85  14988000        0\n",
       "4 2005-07-06  148.65  148.80  145.69  145.76  16000600        0"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_data1_test.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>OpenInt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2005-06-29</td>\n",
       "      <td>22.845</td>\n",
       "      <td>22.845</td>\n",
       "      <td>22.470</td>\n",
       "      <td>22.543</td>\n",
       "      <td>1701836</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2005-06-30</td>\n",
       "      <td>22.622</td>\n",
       "      <td>22.748</td>\n",
       "      <td>22.424</td>\n",
       "      <td>22.461</td>\n",
       "      <td>1796542</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2005-07-01</td>\n",
       "      <td>22.543</td>\n",
       "      <td>22.884</td>\n",
       "      <td>22.478</td>\n",
       "      <td>22.552</td>\n",
       "      <td>1337992</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2005-07-05</td>\n",
       "      <td>22.486</td>\n",
       "      <td>22.748</td>\n",
       "      <td>22.424</td>\n",
       "      <td>22.590</td>\n",
       "      <td>2258997</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2005-07-06</td>\n",
       "      <td>22.590</td>\n",
       "      <td>22.614</td>\n",
       "      <td>22.361</td>\n",
       "      <td>22.395</td>\n",
       "      <td>2169954</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Date    Open    High     Low   Close   Volume  OpenInt\n",
       "0 2005-06-29  22.845  22.845  22.470  22.543  1701836        0\n",
       "1 2005-06-30  22.622  22.748  22.424  22.461  1796542        0\n",
       "2 2005-07-01  22.543  22.884  22.478  22.552  1337992        0\n",
       "3 2005-07-05  22.486  22.748  22.424  22.590  2258997        0\n",
       "4 2005-07-06  22.590  22.614  22.361  22.395  2169954        0"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd_data2_test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Benchmark model for Actual Test Run"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benchmark_Profit is: 115525.234  with remaining Google Stocks: 5.0   and remaining Walmart stocks at the end: 4.0\n"
     ]
    }
   ],
   "source": [
    "#Initialize state and set benchmarking model\n",
    "\n",
    "\n",
    "#print(df_data1)\n",
    "total_Prof=[]\n",
    "done=False\n",
    "\n",
    "Act_datasize = test\n",
    "batch_size = 64\n",
    "\n",
    "#Benchmark Model\n",
    "\n",
    "# Take Opening price in a new variable\n",
    "data1_test=pd_data1_test['Open']\n",
    "data2_test=pd_data2_test['Open']\n",
    "\n",
    "data1_date=pd_data1_test['Date']\n",
    "\n",
    "\n",
    "\n",
    "Act_Bench_Stock1_Bal=int(np.floor((start_balance/4)/data1_test[0]))\n",
    "Act_Bench_Stock2_Bal=int(np.floor((start_balance/4)/data2_test[0]))\n",
    "Act_Bench_Open_cash=start_balance/2\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "### Program to calculate benchmark profit\n",
    "\n",
    "\n",
    "#sell 10% of stock in 10 intervals\n",
    "\n",
    "interval=int(Act_datasize/10)\n",
    "Total_Stock1_Amount= 0\n",
    "Total_Stock2_Amount= 0\n",
    "stocks2Value = 0\n",
    "stocks1Value = 0\n",
    "\n",
    "Act_stocks1=np.floor(Act_Bench_Stock1_Bal /10)\n",
    "Act_stocks2=np.floor(Act_Bench_Stock2_Bal /10)\n",
    "#print(str(Act_stocks1))\n",
    "#print(str(Act_stocks2))\n",
    "\n",
    "remaining_stock1=Act_Bench_Stock1_Bal\n",
    "remaining_stock2=Act_Bench_Stock2_Bal\n",
    "ttl=0\n",
    "\n",
    "Benchmark_Port_Value=[]\n",
    "\n",
    "\n",
    "for j in range (interval,Act_datasize+1,interval):\n",
    "        #print(\"closing prices : \" + str(data1_test[j-1]) )\n",
    "        Price_closing_Stock1=data1_test[j-1]\n",
    "        Price_closing_Stock2=data2_test[j-1]\n",
    "        date_stock1=data1_date[j-1].strftime('%Y-%m-%d')\n",
    "        #print(date_stock1)\n",
    "        #np.array(pd_data1_test['Date'])\n",
    "        \n",
    "        stocks1Value= Act_stocks1 * Price_closing_Stock1\n",
    "        stocks2Value= Act_stocks2 * Price_closing_Stock2\n",
    "        remaining_stock1=remaining_stock1-Act_stocks1\n",
    "        remaining_stock2=remaining_stock2-Act_stocks2\n",
    "        #print(\"J is:\"+ str(j))\n",
    "        \n",
    "        \n",
    "        \n",
    "        Stock1_Port_value=remaining_stock1*Price_closing_Stock1\n",
    "        Stock2_Port_value=remaining_stock2*Price_closing_Stock2\n",
    "        Act_Bench_Open_cash=Act_Bench_Open_cash+stocks1Value+stocks2Value #Adding 10% sold value into open cash\n",
    "        \n",
    "        Total_Portfolio_value=Act_Bench_Open_cash+Stock1_Port_value+Stock2_Port_value\n",
    "        Benchmark_Port_Value.append([date_stock1,Total_Portfolio_value])\n",
    "        \n",
    "\n",
    "\n",
    "\n",
    "#print (\"total_Test_Benchmark_amount : \" +  str(Total_Portfolio_value))\n",
    "\n",
    "Test_Benchmark_Portfolio_Value= Total_Portfolio_value\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "print(\"Benchmark_Profit is: \" + str(Test_Benchmark_Portfolio_Value) +\"  with remaining Google Stocks: \" + str(remaining_stock1) + \n",
    "      \"   and remaining Walmart stocks at the end: \"+ str(remaining_stock2) )\n",
    "\n",
    "\n",
    "#Define arrays to store per episode values \n",
    "total_Prof=[]\n",
    "total_stock1bal=[]\n",
    "total_stock2bal=[]\n",
    "total_open_cash=[]\n",
    "total_port_value=[]\n",
    "total_days_played=[]\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Actual test Run"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Actual run\n",
    "\n",
    "import csv\n",
    "episode_count=0\n",
    "\n",
    "\n",
    "#Define arrays to store per episode values \n",
    "total_Prof=[]\n",
    "total_stock1bal=[]\n",
    "total_stock2bal=[]\n",
    "total_open_cash=[]\n",
    "total_port_value=[]\n",
    "total_days_played=[]\n",
    "\n",
    "from keras.models import load_model\n",
    "\n",
    "model_name='model_ep50'\n",
    "\n",
    "model = load_model(\"models/\" + model_name)\n",
    "\n",
    "Act_Bench_Stock1_Bal=int(np.floor((start_balance/4)/data1_test[0]))\n",
    "Act_Bench_Stock2_Bal=int(np.floor((start_balance/4)/data2_test[0]))\n",
    "Act_Bench_Open_cash=start_balance/2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "..........\n",
      "2005-06-29 00:00:00\n",
      "Total portfolio value: 99948.68  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.0\n",
      "change_percent_stock2:  0.0\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-06-30 00:00:00\n",
      "Total portfolio value: 99031.518  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.69752066116\n",
      "change_percent_stock2:  -0.976143576275\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-01 00:00:00\n",
      "Total portfolio value: 99002.842  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.46611570248\n",
      "change_percent_stock2:  -1.32195228715\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-05 00:00:00\n",
      "Total portfolio value: 98697.934  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.43801652893\n",
      "change_percent_stock2:  -1.57145983804\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-06 00:00:00\n",
      "Total portfolio value: 99240.71  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.71900826446\n",
      "change_percent_stock2:  -1.11621799081\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-07 00:00:00\n",
      "Total portfolio value: 98068.216  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.3142147332\n",
      "change_percent_stock2:  -2.22485541977\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-08 00:00:00\n",
      "Total portfolio value: 98838.188  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.88681224373\n",
      "change_percent_stock2:  -0.752080459259\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-11 00:00:00\n",
      "Total portfolio value: 98820.756  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.810840226382\n",
      "change_percent_stock2:  -0.59356451109\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-12 00:00:00\n",
      "Total portfolio value: 98483.548  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.301745229163\n",
      "change_percent_stock2:  -0.721149544584\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-13 00:00:00\n",
      "Total portfolio value: 98410.948  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.68851256841\n",
      "change_percent_stock2:  -0.459308167073\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-14 00:00:00\n",
      "Total portfolio value: 99425.932  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.00147142974\n",
      "change_percent_stock2:  -0.278192916434\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-15 00:00:00\n",
      "Total portfolio value: 98957.496  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.50279668441\n",
      "change_percent_stock2:  -0.848685572345\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-18 00:00:00\n",
      "Total portfolio value: 98925.212  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.745516824501\n",
      "change_percent_stock2:  -0.32026703956\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-19 00:00:00\n",
      "Total portfolio value: 100028.362  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.20603015075\n",
      "change_percent_stock2:  3.67853689832\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-20 00:00:00\n",
      "Total portfolio value: 100216.446  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.77191580069\n",
      "change_percent_stock2:  2.57572358088\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-21 00:00:00\n",
      "Total portfolio value: 100933.55  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.69558326289\n",
      "change_percent_stock2:  2.03671983728\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-22 00:00:00\n",
      "Total portfolio value: 100299.95  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.581769472205\n",
      "change_percent_stock2:  1.38369351322\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-25 00:00:00\n",
      "Total portfolio value: 100398.816  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.05100585056\n",
      "change_percent_stock2:  2.34481545027\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-26 00:00:00\n",
      "Total portfolio value: 99492.936  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.62374710871\n",
      "change_percent_stock2:  0.129767202864\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-27 00:00:00\n",
      "Total portfolio value: 100145.646  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.27523369394\n",
      "change_percent_stock2:  1.7872844246\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-28 00:00:00\n",
      "Total portfolio value: 99598.502  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.87655885031\n",
      "change_percent_stock2:  -0.738352745424\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-07-29 00:00:00\n",
      "Total portfolio value: 98601.68  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.54983588183\n",
      "change_percent_stock2:  -2.98895386615\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-01 00:00:00\n",
      "Total portfolio value: 98151.878  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.9702970297\n",
      "change_percent_stock2:  -3.05363434686\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-02 00:00:00\n",
      "Total portfolio value: 98719.042  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.844656628718\n",
      "change_percent_stock2:  -1.09943141935\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-03 00:00:00\n",
      "Total portfolio value: 99038.088  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.56644081199\n",
      "change_percent_stock2:  -1.5477857942\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-04 00:00:00\n",
      "Total portfolio value: 98550.16  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.716972902241\n",
      "change_percent_stock2:  -1.80913010624\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-05 00:00:00\n",
      "Total portfolio value: 98560.332  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.50673527043\n",
      "change_percent_stock2:  -1.70327849768\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-08 00:00:00\n",
      "Total portfolio value: 98327.196  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.189015352398\n",
      "change_percent_stock2:  -0.948527759047\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-09 00:00:00\n",
      "Total portfolio value: 98060.616  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.11497974612\n",
      "change_percent_stock2:  -1.26338175396\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-10 00:00:00\n",
      "Total portfolio value: 98267.632  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.36257127765\n",
      "change_percent_stock2:  0.382443834226\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-11 00:00:00\n",
      "Total portfolio value: 97169.552  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.75661260477\n",
      "change_percent_stock2:  -2.13720220802\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-12 00:00:00\n",
      "Total portfolio value: 97048.078  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.97485344875\n",
      "change_percent_stock2:  -1.30186475933\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-15 00:00:00\n",
      "Total portfolio value: 97579.378  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.200539381786\n",
      "change_percent_stock2:  -1.01650563607\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-16 00:00:00\n",
      "Total portfolio value: 97519.182  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.24107328572\n",
      "change_percent_stock2:  0.795232279452\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-17 00:00:00\n",
      "Total portfolio value: 97443.984  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.530929056173\n",
      "change_percent_stock2:  0.222144706163\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-18 00:00:00\n",
      "Total portfolio value: 96694.65  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.4866800985\n",
      "change_percent_stock2:  0.694156746854\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-19 00:00:00\n",
      "Total portfolio value: 97156.416  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.02009186463\n",
      "change_percent_stock2:  0.580146505352\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-22 00:00:00\n",
      "Total portfolio value: 97351.256  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.770576944789\n",
      "change_percent_stock2:  1.05754704024\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-23 00:00:00\n",
      "Total portfolio value: 96757.116  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.97080706537\n",
      "change_percent_stock2:  -0.0747820377193\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-24 00:00:00\n",
      "Total portfolio value: 96699.764  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.860098296948\n",
      "change_percent_stock2:  -0.759946356728\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-25 00:00:00\n",
      "Total portfolio value: 97252.296  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.50300313245\n",
      "change_percent_stock2:  -0.103165256133\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-26 00:00:00\n",
      "Total portfolio value: 97228.642  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.34999856992\n",
      "change_percent_stock2:  -0.526738602545\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-29 00:00:00\n",
      "Total portfolio value: 97045.386  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.728051391863\n",
      "change_percent_stock2:  -0.754882517981\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-30 00:00:00\n",
      "Total portfolio value: 97322.302  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.49643366619\n",
      "change_percent_stock2:  -1.05532429905\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-08-31 00:00:00\n",
      "Total portfolio value: 97277.826  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.978432538\n",
      "change_percent_stock2:  -1.23235388789\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-01 00:00:00\n",
      "Total portfolio value: 97423.378  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.39889881454\n",
      "change_percent_stock2:  0.439801582179\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-02 00:00:00\n",
      "Total portfolio value: 97934.546  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.372736954207\n",
      "change_percent_stock2:  2.47690589788\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-06 00:00:00\n",
      "Total portfolio value: 98129.3  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.02634375524\n",
      "change_percent_stock2:  2.0436305469\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-07 00:00:00\n",
      "Total portfolio value: 98148.682  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.534417012275\n",
      "change_percent_stock2:  2.75220121181\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-08 00:00:00\n",
      "Total portfolio value: 98951.334  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.69163253365\n",
      "change_percent_stock2:  2.20379921546\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-09 00:00:00\n",
      "Total portfolio value: 99298.136  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.06762079104\n",
      "change_percent_stock2:  1.85318459878\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-12 00:00:00\n",
      "Total portfolio value: 99731.188  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.80318124278\n",
      "change_percent_stock2:  1.33283340921\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-13 00:00:00\n",
      "Total portfolio value: 100197.208  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.1907731692\n",
      "change_percent_stock2:  0.355523953426\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-14 00:00:00\n",
      "Total portfolio value: 100182.86  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.68360246111\n",
      "change_percent_stock2:  0.0513765368671\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-15 00:00:00\n",
      "Total portfolio value: 99273.982  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.926170944694\n",
      "change_percent_stock2:  -0.67593272523\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-16 00:00:00\n",
      "Total portfolio value: 99638.668  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.251932360778\n",
      "change_percent_stock2:  -0.651494631366\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-19 00:00:00\n",
      "Total portfolio value: 99312.938  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.18317553282\n",
      "change_percent_stock2:  -0.788302268253\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-20 00:00:00\n",
      "Total portfolio value: 99187.8  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.55443879495\n",
      "change_percent_stock2:  -2.73368371439\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-21 00:00:00\n",
      "Total portfolio value: 99196.484  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.49401079373\n",
      "change_percent_stock2:  -2.85210574359\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-22 00:00:00\n",
      "Total portfolio value: 99334.62  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.52781252057\n",
      "change_percent_stock2:  -2.55991629308\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-23 00:00:00\n",
      "Total portfolio value: 100275.588  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.21542963137\n",
      "change_percent_stock2:  1.58614734354\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-26 00:00:00\n",
      "Total portfolio value: 100899.358  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.72972481592\n",
      "change_percent_stock2:  2.03784570597\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-27 00:00:00\n",
      "Total portfolio value: 100464.638  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.04198747562\n",
      "change_percent_stock2:  1.73675835417\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-28 00:00:00\n",
      "Total portfolio value: 100611.448  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.237338743636\n",
      "change_percent_stock2:  2.13438091186\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-29 00:00:00\n",
      "Total portfolio value: 99764.034  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.5286362654\n",
      "change_percent_stock2:  0.42395336513\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-09-30 00:00:00\n",
      "Total portfolio value: 100595.038  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.174704787166\n",
      "change_percent_stock2:  0.598631444656\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-03 00:00:00\n",
      "Total portfolio value: 100848.038  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.0879216096026\n",
      "change_percent_stock2:  1.64397225018\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-04 00:00:00\n",
      "Total portfolio value: 101404.446  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.30731844576\n",
      "change_percent_stock2:  1.42966170885\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-05 00:00:00\n",
      "Total portfolio value: 100552.226  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.339129991331\n",
      "change_percent_stock2:  -0.0185568103494\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-06 00:00:00\n",
      "Total portfolio value: 100314.938  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.224607256346\n",
      "change_percent_stock2:  -1.51729254248\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-07 00:00:00\n",
      "Total portfolio value: 100321.252  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.0406442107402\n",
      "change_percent_stock2:  -1.66034868206\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-10 00:00:00\n",
      "Total portfolio value: 99902.678  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.547225149503\n",
      "change_percent_stock2:  -2.60465116279\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-11 00:00:00\n",
      "Total portfolio value: 99443.068  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.39056448028\n",
      "change_percent_stock2:  -2.83393582363\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-12 00:00:00\n",
      "Total portfolio value: 98971.312  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.52564610294\n",
      "change_percent_stock2:  -1.99012149836\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-13 00:00:00\n",
      "Total portfolio value: 98526.802  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.08460521418\n",
      "change_percent_stock2:  -1.95517275841\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-14 00:00:00\n",
      "Total portfolio value: 98412.628  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.00274270337\n",
      "change_percent_stock2:  -1.06357683725\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-17 00:00:00\n",
      "Total portfolio value: 98155.552  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.8425494115\n",
      "change_percent_stock2:  -0.746824615781\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-18 00:00:00\n",
      "Total portfolio value: 98951.512  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.633579725449\n",
      "change_percent_stock2:  0.384959796165\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-19 00:00:00\n",
      "Total portfolio value: 98664.452  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.691592252047\n",
      "change_percent_stock2:  -0.469995106141\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-20 00:00:00\n",
      "Total portfolio value: 99376.064  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.76061417699\n",
      "change_percent_stock2:  0.620669879473\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-21 00:00:00\n",
      "Total portfolio value: 102172.028  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  14.0230552112\n",
      "change_percent_stock2:  -0.205020224968\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-24 00:00:00\n",
      "Total portfolio value: 102258.45  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  9.8920794234\n",
      "change_percent_stock2:  1.03272767581\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-25 00:00:00\n",
      "Total portfolio value: 102754.574  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  7.51063353481\n",
      "change_percent_stock2:  2.00923085427\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-26 00:00:00\n",
      "Total portfolio value: 102197.406  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.00078838527\n",
      "change_percent_stock2:  -0.873819380066\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-27 00:00:00\n",
      "Total portfolio value: 103393.416  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.42685162191\n",
      "change_percent_stock2:  0.534003743531\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-28 00:00:00\n",
      "Total portfolio value: 104545.898  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.22002278717\n",
      "change_percent_stock2:  5.67038645484\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-10-31 00:00:00\n",
      "Total portfolio value: 105779.974  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.08475934299\n",
      "change_percent_stock2:  7.6888997387\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-01 00:00:00\n",
      "Total portfolio value: 106400.578  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.39174007187\n",
      "change_percent_stock2:  4.45413915964\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-02 00:00:00\n",
      "Total portfolio value: 106854.64  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  6.60462726084\n",
      "change_percent_stock2:  1.76626021613\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-03 00:00:00\n",
      "Total portfolio value: 107653.028  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.7281013102\n",
      "change_percent_stock2:  3.29959566749\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-04 00:00:00\n",
      "Total portfolio value: 108015.818  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.31574740208\n",
      "change_percent_stock2:  0.564509949169\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-07 00:00:00\n",
      "Total portfolio value: 108516.986  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.73549714237\n",
      "change_percent_stock2:  0.396603447399\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-08 00:00:00\n",
      "Total portfolio value: 108454.788  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.61108566193\n",
      "change_percent_stock2:  0.538706256628\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-09 00:00:00\n",
      "Total portfolio value: 107873.754  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.515585925842\n",
      "change_percent_stock2:  0.542074281116\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-10 00:00:00\n",
      "Total portfolio value: 107413.812  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.90494764935\n",
      "change_percent_stock2:  0.943340555214\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-11 00:00:00\n",
      "Total portfolio value: 108871.998  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.60669834804\n",
      "change_percent_stock2:  1.16084139941\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-14 00:00:00\n",
      "Total portfolio value: 108740.462  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.569376763273\n",
      "change_percent_stock2:  1.27033970882\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-15 00:00:00\n",
      "Total portfolio value: 109058.192  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.30386535972\n",
      "change_percent_stock2:  1.4088395479\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-16 00:00:00\n",
      "Total portfolio value: 109242.256  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.76404713715\n",
      "change_percent_stock2:  1.08101805583\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-17 00:00:00\n",
      "Total portfolio value: 109772.084  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.70016051693\n",
      "change_percent_stock2:  0.891339496704\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-18 00:00:00\n",
      "Total portfolio value: 110102.134  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.9084470757\n",
      "change_percent_stock2:  1.29098377592\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-21 00:00:00\n",
      "Total portfolio value: 109379.244  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.393364118351\n",
      "change_percent_stock2:  -0.499641936997\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-22 00:00:00\n",
      "Total portfolio value: 110293.718  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.41501338332\n",
      "change_percent_stock2:  -0.0452525917394\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-23 00:00:00\n",
      "Total portfolio value: 110933.112  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.7784679089\n",
      "change_percent_stock2:  -0.291132786157\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-25 00:00:00\n",
      "Total portfolio value: 111447.396  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.86572222332\n",
      "change_percent_stock2:  -1.04715056594\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-28 00:00:00\n",
      "Total portfolio value: 111996.214  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.62489654837\n",
      "change_percent_stock2:  -0.00906909828429\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-29 00:00:00\n",
      "Total portfolio value: 111338.496  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.01207436888\n",
      "change_percent_stock2:  -0.612214547738\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-11-30 00:00:00\n",
      "Total portfolio value: 109569.16  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.00999173687\n",
      "change_percent_stock2:  -0.904737882384\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-01 00:00:00\n",
      "Total portfolio value: 109958.112  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.63448433396\n",
      "change_percent_stock2:  -0.702397439193\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-02 00:00:00\n",
      "Total portfolio value: 110672.148  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.421300011464\n",
      "change_percent_stock2:  -0.167931696692\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-05 00:00:00\n",
      "Total portfolio value: 110662.876  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.0153500777098\n",
      "change_percent_stock2:  -0.187117967483\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-06 00:00:00\n",
      "Total portfolio value: 109935.46  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.36881835645\n",
      "change_percent_stock2:  -0.140008167143\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-07 00:00:00\n",
      "Total portfolio value: 109873.6  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.23048489859\n",
      "change_percent_stock2:  0.501255223146\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-08 00:00:00\n",
      "Total portfolio value: 109663.712  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.5306122449\n",
      "change_percent_stock2:  -0.140793441858\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-09 00:00:00\n",
      "Total portfolio value: 110228.752  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.01747724064\n",
      "change_percent_stock2:  -1.05698031801\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-12 00:00:00\n",
      "Total portfolio value: 110258.128  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.02526118821\n",
      "change_percent_stock2:  -0.617696160267\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-13 00:00:00\n",
      "Total portfolio value: 109952.486  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.619572641233\n",
      "change_percent_stock2:  -0.951441375159\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-14 00:00:00\n",
      "Total portfolio value: 110577.562  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.53876119984\n",
      "change_percent_stock2:  0.232953736058\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-15 00:00:00\n",
      "Total portfolio value: 111332.264  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.50740137952\n",
      "change_percent_stock2:  2.61832829809\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-16 00:00:00\n",
      "Total portfolio value: 111879.328  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.32882644469\n",
      "change_percent_stock2:  2.3336091539\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-19 00:00:00\n",
      "Total portfolio value: 112515.294  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.46445533936\n",
      "change_percent_stock2:  1.97969627488\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-20 00:00:00\n",
      "Total portfolio value: 112140.834  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.57155065996\n",
      "change_percent_stock2:  1.29550577569\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-21 00:00:00\n",
      "Total portfolio value: 112523.564  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.17952827165\n",
      "change_percent_stock2:  0.268136085213\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-22 00:00:00\n",
      "Total portfolio value: 112236.126  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.96909376637\n",
      "change_percent_stock2:  -0.686609081854\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-23 00:00:00\n",
      "Total portfolio value: 112199.11  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.468680255914\n",
      "change_percent_stock2:  -0.845054307407\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-27 00:00:00\n",
      "Total portfolio value: 112383.314  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.0815743856429\n",
      "change_percent_stock2:  0.117081637833\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-28 00:00:00\n",
      "Total portfolio value: 111398.612  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.64565177081\n",
      "change_percent_stock2:  -1.16926959571\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-29 00:00:00\n",
      "Total portfolio value: 111592.794  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.639835072991\n",
      "change_percent_stock2:  -1.23243634331\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2005-12-30 00:00:00\n",
      "Total portfolio value: 110700.198  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.87230575858\n",
      "change_percent_stock2:  -0.919149497933\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-03 00:00:00\n",
      "Total portfolio value: 111213.454  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.985180116422\n",
      "change_percent_stock2:  -0.357358524903\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-04 00:00:00\n",
      "Total portfolio value: 113089.986  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.49721748792\n",
      "change_percent_stock2:  0.212901675876\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-05 00:00:00\n",
      "Total portfolio value: 113096.948  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.39977153772\n",
      "change_percent_stock2:  -0.200081360885\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-06 00:00:00\n",
      "Total portfolio value: 114308.526  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.8729746765\n",
      "change_percent_stock2:  1.05923402841\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-09 00:00:00\n",
      "Total portfolio value: 115058.918  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  6.65056846765\n",
      "change_percent_stock2:  0.672892859215\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-10 00:00:00\n",
      "Total portfolio value: 115277.374  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.8645614349\n",
      "change_percent_stock2:  1.88254942002\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-11 00:00:00\n",
      "Total portfolio value: 116375.008  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.45978222691\n",
      "change_percent_stock2:  3.41705895908\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-12 00:00:00\n",
      "Total portfolio value: 116193.408  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.7601107168\n",
      "change_percent_stock2:  1.19562909364\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-13 00:00:00\n",
      "Total portfolio value: 115623.58  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.47584344322\n",
      "change_percent_stock2:  1.35080285097\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-17 00:00:00\n",
      "Total portfolio value: 115408.042  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.06147495449\n",
      "change_percent_stock2:  0.414287675547\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-18 00:00:00\n",
      "Total portfolio value: 114341.958  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.29219445395\n",
      "change_percent_stock2:  0.813517902217\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-19 00:00:00\n",
      "Total portfolio value: 115018.146  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.75382811422\n",
      "change_percent_stock2:  1.77115208998\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-20 00:00:00\n",
      "Total portfolio value: 113834.848  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.61218667919\n",
      "change_percent_stock2:  0.978331241857\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-23 00:00:00\n",
      "Total portfolio value: 110773.964  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -10.0523726673\n",
      "change_percent_stock2:  -1.14732953279\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-24 00:00:00\n",
      "Total portfolio value: 113144.978  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.24116687806\n",
      "change_percent_stock2:  -1.01389320644\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-25 00:00:00\n",
      "Total portfolio value: 114687.256  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.47247062708\n",
      "change_percent_stock2:  0.0550125173409\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-26 00:00:00\n",
      "Total portfolio value: 113979.634  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.602415153762\n",
      "change_percent_stock2:  0.986105243019\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-27 00:00:00\n",
      "Total portfolio value: 113335.96  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.0957237265983\n",
      "change_percent_stock2:  0.0638111190875\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-30 00:00:00\n",
      "Total portfolio value: 112645.242  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.06121094218\n",
      "change_percent_stock2:  -0.581502160664\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-01-31 00:00:00\n",
      "Total portfolio value: 112937.934  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.74708362999\n",
      "change_percent_stock2:  0.0399185661251\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-01 00:00:00\n",
      "Total portfolio value: 109512.534  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -10.9992679356\n",
      "change_percent_stock2:  -0.138668621841\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-02 00:00:00\n",
      "Total portfolio value: 110809.558  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.91103806196\n",
      "change_percent_stock2:  0.17458406741\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-03 00:00:00\n",
      "Total portfolio value: 109731.754  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.72698619507\n",
      "change_percent_stock2:  -0.52460534826\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-06 00:00:00\n",
      "Total portfolio value: 109324.88  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.84866196219\n",
      "change_percent_stock2:  0.629282841448\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-07 00:00:00\n",
      "Total portfolio value: 109766.906  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.36285183483\n",
      "change_percent_stock2:  2.71661081857\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-08 00:00:00\n",
      "Total portfolio value: 108633.552  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.74994884387\n",
      "change_percent_stock2:  2.38994509157\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-09 00:00:00\n",
      "Total portfolio value: 108889.678  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.0449995864\n",
      "change_percent_stock2:  1.90100571879\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-10 00:00:00\n",
      "Total portfolio value: 108266.316  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.82851463489\n",
      "change_percent_stock2:  1.83558205209\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-13 00:00:00\n",
      "Total portfolio value: 107680.696  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -7.313525423\n",
      "change_percent_stock2:  3.41715423877\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-14 00:00:00\n",
      "Total portfolio value: 107952.508  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.71622034861\n",
      "change_percent_stock2:  3.63085068723\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-15 00:00:00\n",
      "Total portfolio value: 107153.164  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.86173059768\n",
      "change_percent_stock2:  1.07149666349\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-16 00:00:00\n",
      "Total portfolio value: 107705.426  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.15126811594\n",
      "change_percent_stock2:  1.19250813591\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-17 00:00:00\n",
      "Total portfolio value: 109829.368  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  6.22788474794\n",
      "change_percent_stock2:  0.994987374213\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-21 00:00:00\n",
      "Total portfolio value: 109638.02  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.77018264161\n",
      "change_percent_stock2:  0.675665553042\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-22 00:00:00\n",
      "Total portfolio value: 109825.418  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.80078933382\n",
      "change_percent_stock2:  0.890174447285\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-23 00:00:00\n",
      "Total portfolio value: 109810.494  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.09894884999\n",
      "change_percent_stock2:  1.22965209661\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-24 00:00:00\n",
      "Total portfolio value: 110705.728  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.95428546238\n",
      "change_percent_stock2:  0.543680366519\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-27 00:00:00\n",
      "Total portfolio value: 110816.372  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.2518035486\n",
      "change_percent_stock2:  -0.46138325965\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-02-28 00:00:00\n",
      "Total portfolio value: 111714.44  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.82523226647\n",
      "change_percent_stock2:  -0.780850259171\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-01 00:00:00\n",
      "Total portfolio value: 109349.064  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.21486410477\n",
      "change_percent_stock2:  -1.82063785413\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-02 00:00:00\n",
      "Total portfolio value: 109135.996  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.42216613466\n",
      "change_percent_stock2:  -0.947895552641\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-03 00:00:00\n",
      "Total portfolio value: 110891.576  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.95689316679\n",
      "change_percent_stock2:  -0.209463250421\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-06 00:00:00\n",
      "Total portfolio value: 110508.796  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.686184328776\n",
      "change_percent_stock2:  -0.297786478844\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-07 00:00:00\n",
      "Total portfolio value: 109047.168  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.49819696922\n",
      "change_percent_stock2:  -0.622261635466\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-08 00:00:00\n",
      "Total portfolio value: 108489.156  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.01749790669\n",
      "change_percent_stock2:  0.843691148776\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-09 00:00:00\n",
      "Total portfolio value: 108855.218  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.86488065612\n",
      "change_percent_stock2:  1.44061682749\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-10 00:00:00\n",
      "Total portfolio value: 107579.182  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -6.63528235013\n",
      "change_percent_stock2:  0.11911807673\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-13 00:00:00\n",
      "Total portfolio value: 107644.208  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.23471724966\n",
      "change_percent_stock2:  1.03347562346\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-14 00:00:00\n",
      "Total portfolio value: 107565.38  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.1540630899\n",
      "change_percent_stock2:  1.52843318798\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-15 00:00:00\n",
      "Total portfolio value: 108861.882  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.32418191902\n",
      "change_percent_stock2:  1.55113011969\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-16 00:00:00\n",
      "Total portfolio value: 108642.11  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.88440256523\n",
      "change_percent_stock2:  0.975934346235\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-17 00:00:00\n",
      "Total portfolio value: 107902.532  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.56427957139\n",
      "change_percent_stock2:  0.971432364851\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-20 00:00:00\n",
      "Total portfolio value: 108281.008  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.263369498083\n",
      "change_percent_stock2:  0.779604031625\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-21 00:00:00\n",
      "Total portfolio value: 108713.85  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.88398034512\n",
      "change_percent_stock2:  -0.236287290231\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-22 00:00:00\n",
      "Total portfolio value: 107669.942  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.83184050852\n",
      "change_percent_stock2:  -0.959949699513\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-23 00:00:00\n",
      "Total portfolio value: 108040.884  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.447804594359\n",
      "change_percent_stock2:  -0.247586398863\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-24 00:00:00\n",
      "Total portfolio value: 110144.976  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  7.5785344898\n",
      "change_percent_stock2:  -0.398712977961\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-27 00:00:00\n",
      "Total portfolio value: 110106.54  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.29637193933\n",
      "change_percent_stock2:  0.0440399295361\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-28 00:00:00\n",
      "Total portfolio value: 110480.588  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.1351381928\n",
      "change_percent_stock2:  0.159508390729\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-29 00:00:00\n",
      "Total portfolio value: 111106.226  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  6.15577187434\n",
      "change_percent_stock2:  0.0\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-30 00:00:00\n",
      "Total portfolio value: 112328.562  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  6.3550707212\n",
      "change_percent_stock2:  1.45741969133\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-03-31 00:00:00\n",
      "Total portfolio value: 112430.644  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.57782325106\n",
      "change_percent_stock2:  1.63861175816\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-03 00:00:00\n",
      "Total portfolio value: 112799.126  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.68469114453\n",
      "change_percent_stock2:  2.22846305347\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-04 00:00:00\n",
      "Total portfolio value: 112569.01  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.58301721622\n",
      "change_percent_stock2:  0.791388302541\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-05 00:00:00\n",
      "Total portfolio value: 114887.226  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.35281061271\n",
      "change_percent_stock2:  3.06943069575\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-06 00:00:00\n",
      "Total portfolio value: 114727.822  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.4005576019\n",
      "change_percent_stock2:  2.03475472724\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-07 00:00:00\n",
      "Total portfolio value: 115495.192  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.99225353533\n",
      "change_percent_stock2:  2.29567888943\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-10 00:00:00\n",
      "Total portfolio value: 114422.866  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.44031896337\n",
      "change_percent_stock2:  -0.482951937809\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-11 00:00:00\n",
      "Total portfolio value: 115468.01  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.86750392775\n",
      "change_percent_stock2:  0.289867338087\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-12 00:00:00\n",
      "Total portfolio value: 115065.908  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.272118132431\n",
      "change_percent_stock2:  0.506181593524\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-13 00:00:00\n",
      "Total portfolio value: 114844.758  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.398755959403\n",
      "change_percent_stock2:  -0.180297736807\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-17 00:00:00\n",
      "Total portfolio value: 114668.472  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.76962708299\n",
      "change_percent_stock2:  0.669539463526\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-18 00:00:00\n",
      "Total portfolio value: 114701.12  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.243570806718\n",
      "change_percent_stock2:  -0.355322107215\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-19 00:00:00\n",
      "Total portfolio value: 115508.392  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.849703239432\n",
      "change_percent_stock2:  0.871687342651\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-20 00:00:00\n",
      "Total portfolio value: 115921.222  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.658320108153\n",
      "change_percent_stock2:  2.37187336015\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-21 00:00:00\n",
      "Total portfolio value: 118953.888  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  9.83284072892\n",
      "change_percent_stock2:  1.62236339826\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-24 00:00:00\n",
      "Total portfolio value: 117956.808  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.43137123168\n",
      "change_percent_stock2:  0.439435526352\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-25 00:00:00\n",
      "Total portfolio value: 117976.608  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.69944050798\n",
      "change_percent_stock2:  0.235180189528\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-26 00:00:00\n",
      "Total portfolio value: 117134.89  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.594933767139\n",
      "change_percent_stock2:  0.260380789684\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-27 00:00:00\n",
      "Total portfolio value: 117334.564  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.40367751583\n",
      "change_percent_stock2:  1.90084802837\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-04-28 00:00:00\n",
      "Total portfolio value: 117378.586  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.91994859084\n",
      "change_percent_stock2:  2.87032150616\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-01 00:00:00\n",
      "Total portfolio value: 116968.264  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.60387089567\n",
      "change_percent_stock2:  1.04327797804\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-02 00:00:00\n",
      "Total portfolio value: 115611.532  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.73558582696\n",
      "change_percent_stock2:  0.825515692938\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-03 00:00:00\n",
      "Total portfolio value: 115393.89  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.12528364754\n",
      "change_percent_stock2:  0.847680688943\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-04 00:00:00\n",
      "Total portfolio value: 115294.836  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.9990668196\n",
      "change_percent_stock2:  0.353152862821\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-05 00:00:00\n",
      "Total portfolio value: 115793.758  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.04966495861\n",
      "change_percent_stock2:  1.0745264174\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-08 00:00:00\n",
      "Total portfolio value: 115649.328  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.64097662007\n",
      "change_percent_stock2:  1.16528261452\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-09 00:00:00\n",
      "Total portfolio value: 115654.512  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.337497481362\n",
      "change_percent_stock2:  0.659878833169\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-10 00:00:00\n",
      "Total portfolio value: 116869.608  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.12048570072\n",
      "change_percent_stock2:  0.890760439326\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-11 00:00:00\n",
      "Total portfolio value: 116073.706  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.27122473366\n",
      "change_percent_stock2:  -0.595617107078\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-12 00:00:00\n",
      "Total portfolio value: 114044.142  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.12267018639\n",
      "change_percent_stock2:  -1.82833050488\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-15 00:00:00\n",
      "Total portfolio value: 113155.12  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -5.36226776094\n",
      "change_percent_stock2:  -2.2679945978\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-16 00:00:00\n",
      "Total portfolio value: 112761.316  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.41811988408\n",
      "change_percent_stock2:  -2.94827966844\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-17 00:00:00\n",
      "Total portfolio value: 112222.826  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.83771569433\n",
      "change_percent_stock2:  -2.47643576639\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-18 00:00:00\n",
      "Total portfolio value: 112017.006  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.815928944006\n",
      "change_percent_stock2:  -4.28479052513\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-19 00:00:00\n",
      "Total portfolio value: 112674.76  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.978332378345\n",
      "change_percent_stock2:  0.437734808534\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-22 00:00:00\n",
      "Total portfolio value: 112235.806  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.8873561011\n",
      "change_percent_stock2:  0.800901879145\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-23 00:00:00\n",
      "Total portfolio value: 112750.66  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.241092954728\n",
      "change_percent_stock2:  0.931031616282\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-24 00:00:00\n",
      "Total portfolio value: 112673.314  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.18517724031\n",
      "change_percent_stock2:  -0.226325770684\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-25 00:00:00\n",
      "Total portfolio value: 112424.656  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.27921515822\n",
      "change_percent_stock2:  -1.39489140071\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-26 00:00:00\n",
      "Total portfolio value: 112955.524  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.72684532205\n",
      "change_percent_stock2:  -1.38460900687\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-30 00:00:00\n",
      "Total portfolio value: 112611.37  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.443962953522\n",
      "change_percent_stock2:  -0.42666851672\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-05-31 00:00:00\n",
      "Total portfolio value: 112223.172  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.29285759554\n",
      "change_percent_stock2:  -0.178153880414\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-01 00:00:00\n",
      "Total portfolio value: 112479.598  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.34067234348\n",
      "change_percent_stock2:  1.02342855547\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-02 00:00:00\n",
      "Total portfolio value: 114098.686  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.37870912421\n",
      "change_percent_stock2:  2.60890795577\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-05 00:00:00\n",
      "Total portfolio value: 112954.488  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.849753824419\n",
      "change_percent_stock2:  1.09840609841\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-06 00:00:00\n",
      "Total portfolio value: 112471.12  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.303922399187\n",
      "change_percent_stock2:  -0.970116814208\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-07 00:00:00\n",
      "Total portfolio value: 114279.888  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.20045152469\n",
      "change_percent_stock2:  0.399500451939\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-08 00:00:00\n",
      "Total portfolio value: 113827.788  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.70060533577\n",
      "change_percent_stock2:  0.113522997007\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-09 00:00:00\n",
      "Total portfolio value: 114004.826  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.10350932\n",
      "change_percent_stock2:  -0.591044981272\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-12 00:00:00\n",
      "Total portfolio value: 113909.552  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.817254771646\n",
      "change_percent_stock2:  0.448229493501\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-13 00:00:00\n",
      "Total portfolio value: 112305.682  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.73467071182\n",
      "change_percent_stock2:  -2.64259748501\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-14 00:00:00\n",
      "Total portfolio value: 112521.394  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.348015897531\n",
      "change_percent_stock2:  -3.97179121624\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-15 00:00:00\n",
      "Total portfolio value: 111970.21  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.306337156531\n",
      "change_percent_stock2:  -3.97714173938\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-16 00:00:00\n",
      "Total portfolio value: 112286.398  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.392177098922\n",
      "change_percent_stock2:  -2.52312214285\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-19 00:00:00\n",
      "Total portfolio value: 112777.84  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.00268761629\n",
      "change_percent_stock2:  -0.4593634535\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-20 00:00:00\n",
      "Total portfolio value: 111616.94  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.149692871522\n",
      "change_percent_stock2:  -2.64155831073\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-21 00:00:00\n",
      "Total portfolio value: 112336.51  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.558515562321\n",
      "change_percent_stock2:  -0.256162783103\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-22 00:00:00\n",
      "Total portfolio value: 113820.332  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.19891450716\n",
      "change_percent_stock2:  1.97975891001\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-23 00:00:00\n",
      "Total portfolio value: 113603.704  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.71240729973\n",
      "change_percent_stock2:  0.524962890554\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-26 00:00:00\n",
      "Total portfolio value: 113978.558  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.01476994145\n",
      "change_percent_stock2:  0.546720760202\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-27 00:00:00\n",
      "Total portfolio value: 114189.232  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.9294543262\n",
      "change_percent_stock2:  1.60230430755\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-28 00:00:00\n",
      "Total portfolio value: 114047.332  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.603621730382\n",
      "change_percent_stock2:  0.85923243818\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-29 00:00:00\n",
      "Total portfolio value: 114281.06  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.949119664295\n",
      "change_percent_stock2:  0.12018714856\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-06-30 00:00:00\n",
      "Total portfolio value: 115194.688  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.5038969239\n",
      "change_percent_stock2:  1.10292801981\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-03 00:00:00\n",
      "Total portfolio value: 115820.266  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.94694325713\n",
      "change_percent_stock2:  1.59766056845\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-05 00:00:00\n",
      "Total portfolio value: 115004.808  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.64152413605\n",
      "change_percent_stock2:  -1.93559377373\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-06 00:00:00\n",
      "Total portfolio value: 115200.924  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.30721645499\n",
      "change_percent_stock2:  -1.4853212381\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-07 00:00:00\n",
      "Total portfolio value: 115550.56  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.99469485861\n",
      "change_percent_stock2:  -0.774097719125\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-10 00:00:00\n",
      "Total portfolio value: 115119.448  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.504134663768\n",
      "change_percent_stock2:  -1.34016047599\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-11 00:00:00\n",
      "Total portfolio value: 114731.052  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.03196148353\n",
      "change_percent_stock2:  -0.814807363444\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-12 00:00:00\n",
      "Total portfolio value: 115197.604  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.118320791329\n",
      "change_percent_stock2:  0.388305988011\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-13 00:00:00\n",
      "Total portfolio value: 114434.732  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.05634362609\n",
      "change_percent_stock2:  -0.0267288895952\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-14 00:00:00\n",
      "Total portfolio value: 113377.366  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.49420174138\n",
      "change_percent_stock2:  -2.52033459988\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-17 00:00:00\n",
      "Total portfolio value: 112490.858  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.12015169798\n",
      "change_percent_stock2:  -3.34076856568\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-18 00:00:00\n",
      "Total portfolio value: 113339.918  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.00311177255\n",
      "change_percent_stock2:  -1.21699549207\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-19 00:00:00\n",
      "Total portfolio value: 112644.056  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.16343167702\n",
      "change_percent_stock2:  0.979880473695\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-20 00:00:00\n",
      "Total portfolio value: 113191.95  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.605786440611\n",
      "change_percent_stock2:  0.464105491915\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-21 00:00:00\n",
      "Total portfolio value: 111131.99  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.60968379447\n",
      "change_percent_stock2:  -1.1393359046\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-24 00:00:00\n",
      "Total portfolio value: 111594.476  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.78616075447\n",
      "change_percent_stock2:  -1.27152827633\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-25 00:00:00\n",
      "Total portfolio value: 111106.324  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -3.16398390342\n",
      "change_percent_stock2:  -0.79890520398\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-26 00:00:00\n",
      "Total portfolio value: 112334.676  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.13382842823\n",
      "change_percent_stock2:  2.60056736958\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-27 00:00:00\n",
      "Total portfolio value: 111535.678  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.00487615387\n",
      "change_percent_stock2:  -0.0399293103321\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-28 00:00:00\n",
      "Total portfolio value: 111311.184  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.52304154593\n",
      "change_percent_stock2:  0.873326864245\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-07-31 00:00:00\n",
      "Total portfolio value: 112239.408  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.237676966002\n",
      "change_percent_stock2:  1.98040995889\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-01 00:00:00\n",
      "Total portfolio value: 111523.73  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.257953568358\n",
      "change_percent_stock2:  -0.333504361211\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-02 00:00:00\n",
      "Total portfolio value: 110495.462  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.72857231649\n",
      "change_percent_stock2:  -1.41735621765\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-03 00:00:00\n",
      "Total portfolio value: 110287.746  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -4.85798298298\n",
      "change_percent_stock2:  1.35735965254\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-04 00:00:00\n",
      "Total portfolio value: 112185.286  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.110777021681\n",
      "change_percent_stock2:  3.27550871029\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-07 00:00:00\n",
      "Total portfolio value: 111208.546  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.88880555233\n",
      "change_percent_stock2:  1.50214748225\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-08 00:00:00\n",
      "Total portfolio value: 111830.656  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.98959909631\n",
      "change_percent_stock2:  0.246546535659\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-09 00:00:00\n",
      "Total portfolio value: 111940.594  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.10940750936\n",
      "change_percent_stock2:  0.286211955854\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-10 00:00:00\n",
      "Total portfolio value: 110161.018  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.65155235271\n",
      "change_percent_stock2:  -3.70282527293\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-11 00:00:00\n",
      "Total portfolio value: 110613.074  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.981719702099\n",
      "change_percent_stock2:  -1.80339718106\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-14 00:00:00\n",
      "Total portfolio value: 109377.19  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.47979208656\n",
      "change_percent_stock2:  -4.37138570451\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-15 00:00:00\n",
      "Total portfolio value: 110703.75  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.784979314734\n",
      "change_percent_stock2:  0.55077122718\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-16 00:00:00\n",
      "Total portfolio value: 111954.028  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.16870037832\n",
      "change_percent_stock2:  2.44429000251\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-17 00:00:00\n",
      "Total portfolio value: 112194.928  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.90937370165\n",
      "change_percent_stock2:  2.47383796176\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-18 00:00:00\n",
      "Total portfolio value: 112256.156  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.20646595058\n",
      "change_percent_stock2:  2.01278189965\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-21 00:00:00\n",
      "Total portfolio value: 111057.262  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.595219316234\n",
      "change_percent_stock2:  -0.177718619499\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-22 00:00:00\n",
      "Total portfolio value: 110721.78  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.03855545425\n",
      "change_percent_stock2:  -1.93872440499\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-23 00:00:00\n",
      "Total portfolio value: 110916.476  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.24580286817\n",
      "change_percent_stock2:  -1.08787341109\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-24 00:00:00\n",
      "Total portfolio value: 110159.082  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.7826228373\n",
      "change_percent_stock2:  -2.36701506481\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-25 00:00:00\n",
      "Total portfolio value: 109794.168  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.52147057892\n",
      "change_percent_stock2:  -2.52776573146\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-28 00:00:00\n",
      "Total portfolio value: 109835.78  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.158428053461\n",
      "change_percent_stock2:  -2.18625043584\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-29 00:00:00\n",
      "Total portfolio value: 110411.914  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.35322175376\n",
      "change_percent_stock2:  -1.00023156967\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-30 00:00:00\n",
      "Total portfolio value: 110331.888  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.768519404318\n",
      "change_percent_stock2:  -0.446177496157\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-08-31 00:00:00\n",
      "Total portfolio value: 110788.018  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.29042536243\n",
      "change_percent_stock2:  0.966067082131\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-01 00:00:00\n",
      "Total portfolio value: 111392.784  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.786185150306\n",
      "change_percent_stock2:  3.151106993\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-05 00:00:00\n",
      "Total portfolio value: 111396.656  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.0705984004721\n",
      "change_percent_stock2:  2.81339111301\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-06 00:00:00\n",
      "Total portfolio value: 111301.93  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.428945404081\n",
      "change_percent_stock2:  1.02809635156\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-07 00:00:00\n",
      "Total portfolio value: 111164.512  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.349852389607\n",
      "change_percent_stock2:  0.783436339336\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-08 00:00:00\n",
      "Total portfolio value: 110266.226  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.06415387686\n",
      "change_percent_stock2:  -2.04149072884\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-11 00:00:00\n",
      "Total portfolio value: 110289.346  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.410720867779\n",
      "change_percent_stock2:  -2.30565130791\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-12 00:00:00\n",
      "Total portfolio value: 111209.698  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.51026176464\n",
      "change_percent_stock2:  -0.495360615134\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-13 00:00:00\n",
      "Total portfolio value: 112160.58  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.90853440478\n",
      "change_percent_stock2:  0.298445411216\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-14 00:00:00\n",
      "Total portfolio value: 113088.576  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.58672056995\n",
      "change_percent_stock2:  1.03867715505\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-15 00:00:00\n",
      "Total portfolio value: 113865.106  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  5.05094254011\n",
      "change_percent_stock2:  2.87693761674\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-18 00:00:00\n",
      "Total portfolio value: 114264.456  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.05035021825\n",
      "change_percent_stock2:  2.7861306696\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-19 00:00:00\n",
      "Total portfolio value: 115105.464  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  3.76434858188\n",
      "change_percent_stock2:  3.15984449699\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-20 00:00:00\n",
      "Total portfolio value: 114586.428  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.152529029719\n",
      "change_percent_stock2:  2.77977265638\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-21 00:00:00\n",
      "Total portfolio value: 114272.672  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -2.09554183746\n",
      "change_percent_stock2:  2.61909894374\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-22 00:00:00\n",
      "Total portfolio value: 114120.524  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.756736622328\n",
      "change_percent_stock2:  -0.14158259459\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-25 00:00:00\n",
      "Total portfolio value: 114341.782  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.48777136576\n",
      "change_percent_stock2:  0.116331857905\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-26 00:00:00\n",
      "Total portfolio value: 114674.322  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.291135131945\n",
      "change_percent_stock2:  0.926580845947\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-27 00:00:00\n",
      "Total portfolio value: 114704.22  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.397339211054\n",
      "change_percent_stock2:  0.555959276688\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-28 00:00:00\n",
      "Total portfolio value: 115256.238  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.111734053177\n",
      "change_percent_stock2:  2.80469328072\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-09-29 00:00:00\n",
      "Total portfolio value: 115857.312  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.0414520045005\n",
      "change_percent_stock2:  4.01420161522\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-02 00:00:00\n",
      "Total portfolio value: 114958.236  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.84279919865\n",
      "change_percent_stock2:  0.866783255607\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-03 00:00:00\n",
      "Total portfolio value: 115082.126  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.815660685155\n",
      "change_percent_stock2:  0.833465574698\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-04 00:00:00\n",
      "Total portfolio value: 115168.02  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.303168407078\n",
      "change_percent_stock2:  -0.328233581454\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-05 00:00:00\n",
      "Total portfolio value: 115954.066  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  2.78386389999\n",
      "change_percent_stock2:  -0.741004290025\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-06 00:00:00\n",
      "Total portfolio value: 115828.428  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.14104814691\n",
      "change_percent_stock2:  0.13357079252\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-09 00:00:00\n",
      "Total portfolio value: 117230.386  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.47306031303\n",
      "change_percent_stock2:  1.04135898722\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-10 00:00:00\n",
      "Total portfolio value: 118005.792  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  4.95340376272\n",
      "change_percent_stock2:  1.48085712915\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-11 00:00:00\n",
      "Total portfolio value: 117448.738  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.86268118721\n",
      "change_percent_stock2:  1.15638540713\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-12 00:00:00\n",
      "Total portfolio value: 118105.09  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  1.73289654845\n",
      "change_percent_stock2:  1.89597658112\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-13 00:00:00\n",
      "Total portfolio value: 118299.462  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.879178929892\n",
      "change_percent_stock2:  2.06615204552\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-16 00:00:00\n",
      "Total portfolio value: 118319.674  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  0.0374233989802\n",
      "change_percent_stock2:  1.50120674703\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-17 00:00:00\n",
      "Total portfolio value: 117726.678  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.82659067551\n",
      "change_percent_stock2:  1.02725983789\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-18 00:00:00\n",
      "Total portfolio value: 117805.02  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -0.673448110682\n",
      "change_percent_stock2:  0.187852222918\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-19 00:00:00\n",
      "Total portfolio value: 117347.58  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  -1.22783596262\n",
      "change_percent_stock2:  -0.827379213259\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-20 00:00:00\n",
      "Total portfolio value: 120244.43  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  8.30580462482\n",
      "change_percent_stock2:  -1.69798911852\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-23 00:00:00\n",
      "Total portfolio value: 120477.834  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  7.49497730486\n",
      "change_percent_stock2:  -1.43244883397\n",
      "t!=datasize50000.0\n",
      "Action is 2 reward is0\n",
      "..........\n",
      "2006-10-24 00:00:00\n",
      "Total portfolio value: 121997.136  stock 1 number: 165  stock 2 number: 1094  open cash50000.0\n",
      "change_percent_stock1:  8.99753755458\n",
      "change_percent_stock2:  0.101796166571\n",
      "t!=datasize49761.86\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-10-25 00:00:00\n",
      "Total portfolio value: 121751.032  stock 1 number: 166  stock 2 number: 1094  open cash49761.86\n",
      "change_percent_stock1:  6.54230631917\n",
      "change_percent_stock2:  -0.744966442953\n",
      "t!=datasize49523.12\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-10-26 00:00:00\n",
      "Total portfolio value: 122646.492  stock 1 number: 167  stock 2 number: 1094  open cash49523.12\n",
      "change_percent_stock1:  6.23540483078\n",
      "change_percent_stock2:  -0.2747511751\n",
      "t!=datasize49279.28\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-10-27 00:00:00\n",
      "Total portfolio value: 122484.32  stock 1 number: 168  stock 2 number: 1094  open cash49279.28\n",
      "change_percent_stock1:  2.40316245683\n",
      "change_percent_stock2:  0.373703169057\n",
      "t!=datasize49037.33\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-10-30 00:00:00\n",
      "Total portfolio value: 121473.098  stock 1 number: 169  stock 2 number: 1094  open cash49037.33\n",
      "change_percent_stock1:  -0.566254261566\n",
      "change_percent_stock2:  -0.489182068715\n",
      "t!=datasize48799.92\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-10-31 00:00:00\n",
      "Total portfolio value: 122011.058  stock 1 number: 170  stock 2 number: 1094  open cash48799.92\n",
      "change_percent_stock1:  -0.41080594627\n",
      "change_percent_stock2:  0.335608914528\n",
      "t!=datasize48560.89\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-01 00:00:00\n",
      "Total portfolio value: 122113.574  stock 1 number: 171  stock 2 number: 1094  open cash48560.89\n",
      "change_percent_stock1:  -0.338892728378\n",
      "change_percent_stock2:  0.546300667701\n",
      "t!=datasize48321.51\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-02 00:00:00\n",
      "Total portfolio value: 120777.63  stock 1 number: 172  stock 2 number: 1094  open cash48321.51\n",
      "change_percent_stock1:  -2.73466432536\n",
      "change_percent_stock2:  -0.746087752848\n",
      "t!=datasize48087.76\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-03 00:00:00\n",
      "Total portfolio value: 121512.558  stock 1 number: 173  stock 2 number: 1094  open cash48087.76\n",
      "change_percent_stock1:  -0.916476433463\n",
      "change_percent_stock2:  0.347105209948\n",
      "t!=datasize47851.64\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-06 00:00:00\n",
      "Total portfolio value: 121729.036  stock 1 number: 174  stock 2 number: 1094  open cash47851.64\n",
      "change_percent_stock1:  -0.108797409104\n",
      "change_percent_stock2:  0.595065605478\n",
      "t!=datasize47614.76\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-07 00:00:00\n",
      "Total portfolio value: 122358.022  stock 1 number: 175  stock 2 number: 1094  open cash47614.76\n",
      "change_percent_stock1:  0.61088798137\n",
      "change_percent_stock2:  1.45322250915\n",
      "t!=datasize47376.28\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-08 00:00:00\n",
      "Total portfolio value: 121777.222  stock 1 number: 176  stock 2 number: 1094  open cash47376.28\n",
      "change_percent_stock1:  -0.735263082365\n",
      "change_percent_stock2:  1.18376928236\n",
      "t!=datasize47141.1\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-09 00:00:00\n",
      "Total portfolio value: 122641.154  stock 1 number: 177  stock 2 number: 1094  open cash47141.1\n",
      "change_percent_stock1:  0.918324988775\n",
      "change_percent_stock2:  1.92229203048\n",
      "t!=datasize46902.85\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-10 00:00:00\n",
      "Total portfolio value: 122565.362  stock 1 number: 178  stock 2 number: 1094  open cash46902.85\n",
      "change_percent_stock1:  -0.0388215138703\n",
      "change_percent_stock2:  1.75947036419\n",
      "t!=datasize46665.96\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-13 00:00:00\n",
      "Total portfolio value: 122603.244  stock 1 number: 179  stock 2 number: 1094  open cash46665.96\n",
      "change_percent_stock1:  0.132413467377\n",
      "change_percent_stock2:  1.00539382883\n",
      "t!=datasize46428.51\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-14 00:00:00\n",
      "Total portfolio value: 123065.074  stock 1 number: 180  stock 2 number: 1094  open cash46428.51\n",
      "change_percent_stock1:  1.30663856691\n",
      "change_percent_stock2:  0.354626260765\n",
      "t!=datasize46188.16\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-15 00:00:00\n",
      "Total portfolio value: 123916.1  stock 1 number: 181  stock 2 number: 1094  open cash46188.16\n",
      "change_percent_stock1:  3.8278961721\n",
      "change_percent_stock2:  -0.770725558678\n",
      "t!=datasize45941.44\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-16 00:00:00\n",
      "Total portfolio value: 124342.5  stock 1 number: 182  stock 2 number: 1094  open cash45941.44\n",
      "change_percent_stock1:  3.15422703099\n",
      "change_percent_stock2:  0.0452812358496\n",
      "t!=datasize45693.94\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-17 00:00:00\n",
      "Total portfolio value: 124033.77  stock 1 number: 183  stock 2 number: 1094  open cash45693.94\n",
      "change_percent_stock1:  2.0009760859\n",
      "change_percent_stock2:  -0.413372264689\n",
      "t!=datasize45447.32\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-20 00:00:00\n",
      "Total portfolio value: 124492.08  stock 1 number: 184  stock 2 number: 1094  open cash45447.32\n",
      "change_percent_stock1:  2.24512571391\n",
      "change_percent_stock2:  -0.290518068646\n",
      "t!=datasize45198.12\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-21 00:00:00\n",
      "Total portfolio value: 124077.162  stock 1 number: 185  stock 2 number: 1094  open cash45198.12\n",
      "change_percent_stock1:  0.890774469884\n",
      "change_percent_stock2:  -0.876113243067\n",
      "t!=datasize44949.85\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-22 00:00:00\n",
      "Total portfolio value: 125319.762  stock 1 number: 186  stock 2 number: 1094  open cash44949.85\n",
      "change_percent_stock1:  3.15672166097\n",
      "change_percent_stock2:  -0.919271709793\n",
      "t!=datasize44694.37\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-24 00:00:00\n",
      "Total portfolio value: 124414.902  stock 1 number: 187  stock 2 number: 1094  open cash44694.37\n",
      "change_percent_stock1:  1.13706528102\n",
      "change_percent_stock2:  -1.69562085759\n",
      "t!=datasize44442.12\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-27 00:00:00\n",
      "Total portfolio value: 124171.16  stock 1 number: 188  stock 2 number: 1094  open cash44442.12\n",
      "change_percent_stock1:  0.12621622917\n",
      "change_percent_stock2:  -1.05847510525\n",
      "t!=datasize44191.44\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-28 00:00:00\n",
      "Total portfolio value: 121606.456  stock 1 number: 189  stock 2 number: 1094  open cash44191.44\n",
      "change_percent_stock1:  -4.22651845718\n",
      "change_percent_stock2:  -2.67863688774\n",
      "t!=datasize43950.88\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-29 00:00:00\n",
      "Total portfolio value: 123252.166  stock 1 number: 190  stock 2 number: 1094  open cash43950.88\n",
      "change_percent_stock1:  -0.933260639492\n",
      "change_percent_stock2:  -0.71052967368\n",
      "t!=datasize43703.76\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-11-30 00:00:00\n",
      "Total portfolio value: 122095.332  stock 1 number: 191  stock 2 number: 1094  open cash43703.76\n",
      "change_percent_stock1:  -2.85613398711\n",
      "change_percent_stock2:  -0.953125631934\n",
      "t!=datasize43461.66\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-01 00:00:00\n",
      "Total portfolio value: 122035.378  stock 1 number: 192  stock 2 number: 1094  open cash43461.66\n",
      "change_percent_stock1:  -1.4407281518\n",
      "change_percent_stock2:  -1.23820355552\n",
      "t!=datasize43218.67\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-04 00:00:00\n",
      "Total portfolio value: 121648.254  stock 1 number: 193  stock 2 number: 1094  open cash43218.67\n",
      "change_percent_stock1:  -1.30369038375\n",
      "change_percent_stock2:  -1.16081501719\n",
      "t!=datasize42977.17\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-05 00:00:00\n",
      "Total portfolio value: 122648.31  stock 1 number: 194  stock 2 number: 1094  open cash42977.17\n",
      "change_percent_stock1:  0.348357449332\n",
      "change_percent_stock2:  1.11047369284\n",
      "t!=datasize42733.47\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-06 00:00:00\n",
      "Total portfolio value: 122674.332  stock 1 number: 195  stock 2 number: 1094  open cash42733.47\n",
      "change_percent_stock1:  -0.000821415956842\n",
      "change_percent_stock2:  1.04542668392\n",
      "t!=datasize42489.99\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-07 00:00:00\n",
      "Total portfolio value: 123358.98  stock 1 number: 196  stock 2 number: 1094  open cash42489.99\n",
      "change_percent_stock1:  0.97464923338\n",
      "change_percent_stock2:  2.10366559135\n",
      "t!=datasize42244.87\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-08 00:00:00\n",
      "Total portfolio value: 122464.85  stock 1 number: 197  stock 2 number: 1094  open cash42244.87\n",
      "change_percent_stock1:  -0.981270391769\n",
      "change_percent_stock2:  1.43950227379\n",
      "t!=datasize42003.9\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-11 00:00:00\n",
      "Total portfolio value: 122603.428  stock 1 number: 198  stock 2 number: 1094  open cash42003.9\n",
      "change_percent_stock1:  -0.20333067165\n",
      "change_percent_stock2:  0.438948411762\n",
      "t!=datasize41761.44\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-12 00:00:00\n",
      "Total portfolio value: 122434.704  stock 1 number: 199  stock 2 number: 1094  open cash41761.44\n",
      "change_percent_stock1:  -0.504223799692\n",
      "change_percent_stock2:  -0.224809582928\n",
      "t!=datasize41519.52\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-13 00:00:00\n",
      "Total portfolio value: 122616.07  stock 1 number: 200  stock 2 number: 1094  open cash41519.52\n",
      "change_percent_stock1:  -0.185345360188\n",
      "change_percent_stock2:  -0.0107281029361\n",
      "t!=datasize41277.18\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-14 00:00:00\n",
      "Total portfolio value: 122054.98  stock 1 number: 201  stock 2 number: 1094  open cash41277.18\n",
      "change_percent_stock1:  -1.00675291266\n",
      "change_percent_stock2:  -0.464187872171\n",
      "t!=datasize41037.06\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-15 00:00:00\n",
      "Total portfolio value: 122185.792  stock 1 number: 202  stock 2 number: 1094  open cash41037.06\n",
      "change_percent_stock1:  -0.10018131991\n",
      "change_percent_stock2:  -0.616074304735\n",
      "t!=datasize40795.74\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-18 00:00:00\n",
      "Total portfolio value: 122173.612  stock 1 number: 203  stock 2 number: 1094  open cash40795.74\n",
      "change_percent_stock1:  -0.153953118792\n",
      "change_percent_stock2:  -0.404193932383\n",
      "t!=datasize40554.48\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-19 00:00:00\n",
      "Total portfolio value: 119312.468  stock 1 number: 204  stock 2 number: 1094  open cash40554.48\n",
      "change_percent_stock1:  -4.36302777225\n",
      "change_percent_stock2:  -2.56334291697\n",
      "t!=datasize40323.62\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-20 00:00:00\n",
      "Total portfolio value: 119779.362  stock 1 number: 205  stock 2 number: 1094  open cash40323.62\n",
      "change_percent_stock1:  -1.74763776235\n",
      "change_percent_stock2:  -3.22089315814\n",
      "t!=datasize40088.62\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-21 00:00:00\n",
      "Total portfolio value: 119302.43  stock 1 number: 206  stock 2 number: 1094  open cash40088.62\n",
      "change_percent_stock1:  -2.3650467793\n",
      "change_percent_stock2:  -2.024697763\n",
      "t!=datasize39856.53\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-22 00:00:00\n",
      "Total portfolio value: 118739.048  stock 1 number: 207  stock 2 number: 1094  open cash39856.53\n",
      "change_percent_stock1:  -3.11554979543\n",
      "change_percent_stock2:  -0.938986499491\n",
      "t!=datasize39627.78\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-26 00:00:00\n",
      "Total portfolio value: 118153.58  stock 1 number: 208  stock 2 number: 1094  open cash39627.78\n",
      "change_percent_stock1:  -2.28261241823\n",
      "change_percent_stock2:  -1.92148189107\n",
      "t!=datasize39399.52\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-27 00:00:00\n",
      "Total portfolio value: 118992.036  stock 1 number: 209  stock 2 number: 1094  open cash39399.52\n",
      "change_percent_stock1:  -0.429452102237\n",
      "change_percent_stock2:  0.437807615622\n",
      "t!=datasize39169.52\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-28 00:00:00\n",
      "Total portfolio value: 120202.398  stock 1 number: 210  stock 2 number: 1094  open cash39169.52\n",
      "change_percent_stock1:  1.18707217745\n",
      "change_percent_stock2:  2.00329346749\n",
      "t!=datasize38935.96\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2006-12-29 00:00:00\n",
      "Total portfolio value: 119607.148  stock 1 number: 211  stock 2 number: 1094  open cash38935.96\n",
      "change_percent_stock1:  0.224697655857\n",
      "change_percent_stock2:  1.33858486503\n",
      "t!=datasize38704.91\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-03 00:00:00\n",
      "Total portfolio value: 120040.24  stock 1 number: 212  stock 2 number: 1094  open cash38704.91\n",
      "change_percent_stock1:  1.16184157969\n",
      "change_percent_stock2:  1.06972235685\n",
      "t!=datasize38471.91\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-04 00:00:00\n",
      "Total portfolio value: 120449.448  stock 1 number: 213  stock 2 number: 1094  open cash38471.91\n",
      "change_percent_stock1:  1.43874311125\n",
      "change_percent_stock2:  1.09251880141\n",
      "t!=datasize38237.41\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-05 00:00:00\n",
      "Total portfolio value: 121596.38  stock 1 number: 214  stock 2 number: 1094  open cash38237.41\n",
      "change_percent_stock1:  3.79826350345\n",
      "change_percent_stock2:  -0.463280713795\n",
      "t!=datasize37996.16\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-08 00:00:00\n",
      "Total portfolio value: 121553.718  stock 1 number: 215  stock 2 number: 1094  open cash37996.16\n",
      "change_percent_stock1:  3.90672939251\n",
      "change_percent_stock2:  -2.47170833019\n",
      "t!=datasize37752.32\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-09 00:00:00\n",
      "Total portfolio value: 121512.0  stock 1 number: 216  stock 2 number: 1094  open cash37752.32\n",
      "change_percent_stock1:  2.53117501943\n",
      "change_percent_stock2:  -1.31692290729\n",
      "t!=datasize37509.6\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-10 00:00:00\n",
      "Total portfolio value: 121081.864  stock 1 number: 217  stock 2 number: 1094  open cash37509.6\n",
      "change_percent_stock1:  1.32099622692\n",
      "change_percent_stock2:  -1.9671586869\n",
      "t!=datasize37267.38\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-11 00:00:00\n",
      "Total portfolio value: 123381.818  stock 1 number: 218  stock 2 number: 1094  open cash37267.38\n",
      "change_percent_stock1:  3.19377682582\n",
      "change_percent_stock2:  1.50287006436\n",
      "t!=datasize37018.78\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-12 00:00:00\n",
      "Total portfolio value: 124180.918  stock 1 number: 219  stock 2 number: 1094  open cash37018.78\n",
      "change_percent_stock1:  2.98449898657\n",
      "change_percent_stock2:  2.44386422977\n",
      "t!=datasize36767.78\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-16 00:00:00\n",
      "Total portfolio value: 124732.348  stock 1 number: 220  stock 2 number: 1094  open cash36767.78\n",
      "change_percent_stock1:  3.29865351113\n",
      "change_percent_stock2:  1.95283483863\n",
      "t!=datasize36514.0\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-17 00:00:00\n",
      "Total portfolio value: 124175.302  stock 1 number: 221  stock 2 number: 1094  open cash36514.0\n",
      "change_percent_stock1:  1.6296272369\n",
      "change_percent_stock2:  1.00233164553\n",
      "t!=datasize36262.3\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-18 00:00:00\n",
      "Total portfolio value: 123277.142  stock 1 number: 222  stock 2 number: 1094  open cash36262.3\n",
      "change_percent_stock1:  -0.881904914616\n",
      "change_percent_stock2:  0.831015418427\n",
      "t!=datasize36015.04\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-19 00:00:00\n",
      "Total portfolio value: 122547.932  stock 1 number: 223  stock 2 number: 1094  open cash36015.04\n",
      "change_percent_stock1:  -2.58635833719\n",
      "change_percent_stock2:  0.131630996713\n",
      "t!=datasize35771.05\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-22 00:00:00\n",
      "Total portfolio value: 122966.652  stock 1 number: 224  stock 2 number: 1094  open cash35771.05\n",
      "change_percent_stock1:  -1.3207985702\n",
      "change_percent_stock2:  -0.267696583292\n",
      "t!=datasize35524.8\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-23 00:00:00\n",
      "Total portfolio value: 122058.464  stock 1 number: 225  stock 2 number: 1094  open cash35524.8\n",
      "change_percent_stock1:  -3.29691547732\n",
      "change_percent_stock2:  1.10183821524\n",
      "t!=datasize35284.4\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-24 00:00:00\n",
      "Total portfolio value: 122703.9  stock 1 number: 226  stock 2 number: 1094  open cash35284.4\n",
      "change_percent_stock1:  -1.50455432661\n",
      "change_percent_stock2:  1.6345918284\n",
      "t!=datasize35042.18\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-25 00:00:00\n",
      "Total portfolio value: 124673.168  stock 1 number: 227  stock 2 number: 1094  open cash35042.18\n",
      "change_percent_stock1:  2.65383732748\n",
      "change_percent_stock2:  1.50811671807\n",
      "t!=datasize34791.68\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-26 00:00:00\n",
      "Total portfolio value: 122985.8  stock 1 number: 228  stock 2 number: 1094  open cash34791.68\n",
      "change_percent_stock1:  0.322063824222\n",
      "change_percent_stock2:  -0.55629067538\n",
      "t!=datasize34546.22\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-29 00:00:00\n",
      "Total portfolio value: 124143.258  stock 1 number: 229  stock 2 number: 1094  open cash34546.22\n",
      "change_percent_stock1:  1.64675914209\n",
      "change_percent_stock2:  0.44797970598\n",
      "t!=datasize34297.22\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-30 00:00:00\n",
      "Total portfolio value: 123977.544  stock 1 number: 230  stock 2 number: 1094  open cash34297.22\n",
      "change_percent_stock1:  0.604441258411\n",
      "change_percent_stock2:  1.01872709545\n",
      "t!=datasize34050.22\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-01-31 00:00:00\n",
      "Total portfolio value: 124366.82  stock 1 number: 231  stock 2 number: 1094  open cash34050.22\n",
      "change_percent_stock1:  0.568798716557\n",
      "change_percent_stock2:  1.06971597197\n",
      "t!=datasize33801.98\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-01 00:00:00\n",
      "Total portfolio value: 125611.172  stock 1 number: 232  stock 2 number: 1094  open cash33801.98\n",
      "change_percent_stock1:  1.99967747138\n",
      "change_percent_stock2:  1.31548117155\n",
      "t!=datasize33548.98\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-02 00:00:00\n",
      "Total portfolio value: 122612.666  stock 1 number: 233  stock 2 number: 1094  open cash33548.98\n",
      "change_percent_stock1:  -2.91301199002\n",
      "change_percent_stock2:  0.269889305302\n",
      "t!=datasize33307.68\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-05 00:00:00\n",
      "Total portfolio value: 122009.402  stock 1 number: 234  stock 2 number: 1094  open cash33307.68\n",
      "change_percent_stock1:  -3.61635474026\n",
      "change_percent_stock2:  -0.1231281198\n",
      "t!=datasize33068.93\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-06 00:00:00\n",
      "Total portfolio value: 121504.414  stock 1 number: 235  stock 2 number: 1094  open cash33068.93\n",
      "change_percent_stock1:  -4.72526846266\n",
      "change_percent_stock2:  1.54100713688\n",
      "t!=datasize32834.88\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-07 00:00:00\n",
      "Total portfolio value: 121807.414  stock 1 number: 236  stock 2 number: 1094  open cash32834.88\n",
      "change_percent_stock1:  -2.53344743035\n",
      "change_percent_stock2:  0.0688737160681\n",
      "t!=datasize32597.97\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-08 00:00:00\n",
      "Total portfolio value: 120828.198  stock 1 number: 237  stock 2 number: 1094  open cash32597.97\n",
      "change_percent_stock1:  -2.81642179052\n",
      "change_percent_stock2:  -0.875021511497\n",
      "t!=datasize32363.95\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-09 00:00:00\n",
      "Total portfolio value: 119239.262  stock 1 number: 238  stock 2 number: 1094  open cash32363.95\n",
      "change_percent_stock1:  -0.500409272339\n",
      "change_percent_stock2:  -6.7826963639\n",
      "t!=datasize32128.13\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-12 00:00:00\n",
      "Total portfolio value: 117757.784  stock 1 number: 239  stock 2 number: 1094  open cash32128.13\n",
      "change_percent_stock1:  -2.36106989954\n",
      "change_percent_stock2:  -6.11333176581\n",
      "t!=datasize31897.79\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-13 00:00:00\n",
      "Total portfolio value: 117330.328  stock 1 number: 240  stock 2 number: 1094  open cash31897.79\n",
      "change_percent_stock1:  -1.98439127688\n",
      "change_percent_stock2:  -5.55748571117\n",
      "t!=datasize31668.21\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-14 00:00:00\n",
      "Total portfolio value: 117702.86  stock 1 number: 241  stock 2 number: 1094  open cash31668.21\n",
      "change_percent_stock1:  -1.42885306042\n",
      "change_percent_stock2:  -2.83691884495\n",
      "t!=datasize31438.21\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-15 00:00:00\n",
      "Total portfolio value: 118313.99  stock 1 number: 242  stock 2 number: 1094  open cash31438.21\n",
      "change_percent_stock1:  0.451817617438\n",
      "change_percent_stock2:  -1.66745464425\n",
      "t!=datasize31205.21\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-16 00:00:00\n",
      "Total portfolio value: 118219.476  stock 1 number: 243  stock 2 number: 1094  open cash31205.21\n",
      "change_percent_stock1:  -0.150163108204\n",
      "change_percent_stock2:  0.762008436522\n",
      "t!=datasize30973.81\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-20 00:00:00\n",
      "Total portfolio value: 119009.802  stock 1 number: 244  stock 2 number: 1094  open cash30973.81\n",
      "change_percent_stock1:  1.462332802\n",
      "change_percent_stock2:  1.05826925005\n",
      "t!=datasize30739.57\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-21 00:00:00\n",
      "Total portfolio value: 118873.364  stock 1 number: 245  stock 2 number: 1094  open cash30739.57\n",
      "change_percent_stock1:  1.41423909102\n",
      "change_percent_stock2:  -0.131485861697\n",
      "t!=datasize30504.65\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-22 00:00:00\n",
      "Total portfolio value: 119986.94  stock 1 number: 246  stock 2 number: 1094  open cash30504.65\n",
      "change_percent_stock1:  2.84815566022\n",
      "change_percent_stock2:  -0.205475054044\n",
      "t!=datasize30265.31\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-23 00:00:00\n",
      "Total portfolio value: 118556.388  stock 1 number: 247  stock 2 number: 1094  open cash30265.31\n",
      "change_percent_stock1:  1.40676954557\n",
      "change_percent_stock2:  -3.6942702425\n",
      "t!=datasize30027.43\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-26 00:00:00\n",
      "Total portfolio value: 118811.324  stock 1 number: 248  stock 2 number: 1094  open cash30027.43\n",
      "change_percent_stock1:  0.36679176077\n",
      "change_percent_stock2:  -1.06612104243\n",
      "t!=datasize29791.01\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-27 00:00:00\n",
      "Total portfolio value: 116426.144  stock 1 number: 249  stock 2 number: 1094  open cash29791.01\n",
      "change_percent_stock1:  -3.82989516402\n",
      "change_percent_stock2:  -1.19456139339\n",
      "t!=datasize29563.51\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-02-28 00:00:00\n",
      "Total portfolio value: 115251.632  stock 1 number: 250  stock 2 number: 1094  open cash29563.51\n",
      "change_percent_stock1:  -4.25658554836\n",
      "change_percent_stock2:  -2.59617825157\n",
      "t!=datasize29338.31\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-01 00:00:00\n",
      "Total portfolio value: 114307.934  stock 1 number: 251  stock 2 number: 1094  open cash29338.31\n",
      "change_percent_stock1:  -5.11343176089\n",
      "change_percent_stock2:  -1.73748419306\n",
      "t!=datasize29116.97\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-02 00:00:00\n",
      "Total portfolio value: 114518.008  stock 1 number: 252  stock 2 number: 1094  open cash29116.97\n",
      "change_percent_stock1:  -3.09490220666\n",
      "change_percent_stock2:  -1.27691242134\n",
      "t!=datasize28894.41\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-05 00:00:00\n",
      "Total portfolio value: 113069.98  stock 1 number: 253  stock 2 number: 1094  open cash28894.41\n",
      "change_percent_stock1:  -3.57186986991\n",
      "change_percent_stock2:  -2.55906964388\n",
      "t!=datasize28675.9\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-06 00:00:00\n",
      "Total portfolio value: 114821.778  stock 1 number: 254  stock 2 number: 1094  open cash28675.9\n",
      "change_percent_stock1:  0.321941333142\n",
      "change_percent_stock2:  -0.284295995296\n",
      "t!=datasize28452.16\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-07 00:00:00\n",
      "Total portfolio value: 116813.384  stock 1 number: 255  stock 2 number: 1094  open cash28452.16\n",
      "change_percent_stock1:  4.08062266613\n",
      "change_percent_stock2:  0.356627514897\n",
      "t!=datasize28220.82\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-08 00:00:00\n",
      "Total portfolio value: 116430.674  stock 1 number: 256  stock 2 number: 1094  open cash28220.82\n",
      "change_percent_stock1:  2.7347000868\n",
      "change_percent_stock2:  0.575013459353\n",
      "t!=datasize27991.21\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-09 00:00:00\n",
      "Total portfolio value: 116422.688  stock 1 number: 257  stock 2 number: 1094  open cash27991.21\n",
      "change_percent_stock1:  1.70906765208\n",
      "change_percent_stock2:  1.0721415167\n",
      "t!=datasize27762.21\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-12 00:00:00\n",
      "Total portfolio value: 115633.408  stock 1 number: 258  stock 2 number: 1094  open cash27762.21\n",
      "change_percent_stock1:  -0.0706588941883\n",
      "change_percent_stock2:  0.592577113388\n",
      "t!=datasize27535.93\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-13 00:00:00\n",
      "Total portfolio value: 114934.528  stock 1 number: 259  stock 2 number: 1094  open cash27535.93\n",
      "change_percent_stock1:  -1.28687597042\n",
      "change_percent_stock2:  -1.1171564911\n",
      "t!=datasize27310.87\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-14 00:00:00\n",
      "Total portfolio value: 113512.82  stock 1 number: 260  stock 2 number: 1094  open cash27310.87\n",
      "change_percent_stock1:  -2.90811274961\n",
      "change_percent_stock2:  -2.77116146128\n",
      "t!=datasize27089.25\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-15 00:00:00\n",
      "Total portfolio value: 114402.358  stock 1 number: 261  stock 2 number: 1094  open cash27089.25\n",
      "change_percent_stock1:  -1.05340367808\n",
      "change_percent_stock2:  -1.2662111699\n",
      "t!=datasize26865.32\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-16 00:00:00\n",
      "Total portfolio value: 114430.986  stock 1 number: 262  stock 2 number: 1094  open cash26865.32\n",
      "change_percent_stock1:  -1.04717157093\n",
      "change_percent_stock2:  0.211850082261\n",
      "t!=datasize26642.5\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-19 00:00:00\n",
      "Total portfolio value: 114335.28  stock 1 number: 263  stock 2 number: 1094  open cash26642.5\n",
      "change_percent_stock1:  -1.03687561958\n",
      "change_percent_stock2:  1.2391247034\n",
      "t!=datasize26420.88\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-20 00:00:00\n",
      "Total portfolio value: 114888.718  stock 1 number: 264  stock 2 number: 1094  open cash26420.88\n",
      "change_percent_stock1:  -0.0493251423703\n",
      "change_percent_stock2:  2.0402779662\n",
      "t!=datasize26197.98\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-21 00:00:00\n",
      "Total portfolio value: 114907.8  stock 1 number: 265  stock 2 number: 1094  open cash26197.98\n",
      "change_percent_stock1:  0.032348210515\n",
      "change_percent_stock2:  1.97299245952\n",
      "t!=datasize25975.33\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-22 00:00:00\n",
      "Total portfolio value: 115715.384  stock 1 number: 266  stock 2 number: 1094  open cash25975.33\n",
      "change_percent_stock1:  2.2515081873\n",
      "change_percent_stock2:  -0.725156135879\n",
      "t!=datasize25747.53\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-23 00:00:00\n",
      "Total portfolio value: 117232.38  stock 1 number: 267  stock 2 number: 1094  open cash25747.53\n",
      "change_percent_stock1:  3.20364290251\n",
      "change_percent_stock2:  1.59411449655\n",
      "t!=datasize25516.81\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-26 00:00:00\n",
      "Total portfolio value: 117575.034  stock 1 number: 268  stock 2 number: 1094  open cash25516.81\n",
      "change_percent_stock1:  2.28393252139\n",
      "change_percent_stock2:  2.67420854681\n",
      "t!=datasize25286.53\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-27 00:00:00\n",
      "Total portfolio value: 118168.89  stock 1 number: 269  stock 2 number: 1094  open cash25286.53\n",
      "change_percent_stock1:  2.16423502446\n",
      "change_percent_stock2:  2.6676672258\n",
      "t!=datasize25054.75\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-28 00:00:00\n",
      "Total portfolio value: 117387.432  stock 1 number: 270  stock 2 number: 1094  open cash25054.75\n",
      "change_percent_stock1:  1.00329767413\n",
      "change_percent_stock2:  0.188655790928\n",
      "t!=datasize24823.81\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-29 00:00:00\n",
      "Total portfolio value: 117479.26  stock 1 number: 271  stock 2 number: 1094  open cash24823.81\n",
      "change_percent_stock1:  0.857996387384\n",
      "change_percent_stock2:  -0.897777453378\n",
      "t!=datasize24591.53\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-03-30 00:00:00\n",
      "Total portfolio value: 117700.452  stock 1 number: 272  stock 2 number: 1094  open cash24591.53\n",
      "change_percent_stock1:  -0.0648788927336\n",
      "change_percent_stock2:  0.578829107251\n",
      "t!=datasize24360.48\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-02 00:00:00\n",
      "Total portfolio value: 116727.33  stock 1 number: 273  stock 2 number: 1094  open cash24360.48\n",
      "change_percent_stock1:  -1.03171240044\n",
      "change_percent_stock2:  -0.937135064954\n",
      "t!=datasize24131.6\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-03 00:00:00\n",
      "Total portfolio value: 118048.264  stock 1 number: 274  stock 2 number: 1094  open cash24131.6\n",
      "change_percent_stock1:  0.44764617769\n",
      "change_percent_stock2:  0.897807138804\n",
      "t!=datasize23899.58\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-04 00:00:00\n",
      "Total portfolio value: 119221.09  stock 1 number: 275  stock 2 number: 1094  open cash23899.58\n",
      "change_percent_stock1:  2.17976574876\n",
      "change_percent_stock2:  1.2223905822\n",
      "t!=datasize23663.51\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-05 00:00:00\n",
      "Total portfolio value: 119019.838  stock 1 number: 276  stock 2 number: 1094  open cash23663.51\n",
      "change_percent_stock1:  1.54701370335\n",
      "change_percent_stock2:  0.654515868922\n",
      "t!=datasize23427.86\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-09 00:00:00\n",
      "Total portfolio value: 119087.324  stock 1 number: 277  stock 2 number: 1094  open cash23427.86\n",
      "change_percent_stock1:  1.61385959937\n",
      "change_percent_stock2:  -0.297360652891\n",
      "t!=datasize23191.37\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-10 00:00:00\n",
      "Total portfolio value: 117945.588  stock 1 number: 278  stock 2 number: 1094  open cash23191.37\n",
      "change_percent_stock1:  -0.120604562445\n",
      "change_percent_stock2:  -1.28806637995\n",
      "t!=datasize22957.83\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-11 00:00:00\n",
      "Total portfolio value: 118053.824  stock 1 number: 279  stock 2 number: 1094  open cash22957.83\n",
      "change_percent_stock1:  -0.734385782564\n",
      "change_percent_stock2:  -0.424434690655\n",
      "t!=datasize22724.8\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-12 00:00:00\n",
      "Total portfolio value: 118190.99  stock 1 number: 280  stock 2 number: 1094  open cash22724.8\n",
      "change_percent_stock1:  -1.25810790105\n",
      "change_percent_stock2:  1.16015846067\n",
      "t!=datasize22492.8\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-13 00:00:00\n",
      "Total portfolio value: 118406.748  stock 1 number: 281  stock 2 number: 1094  open cash22492.8\n",
      "change_percent_stock1:  0.0333131176807\n",
      "change_percent_stock2:  -0.261744041879\n",
      "t!=datasize22258.58\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-16 00:00:00\n",
      "Total portfolio value: 117889.918  stock 1 number: 282  stock 2 number: 1094  open cash22258.58\n",
      "change_percent_stock1:  0.159927476738\n",
      "change_percent_stock2:  -1.84140399794\n",
      "t!=datasize22024.35\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-17 00:00:00\n",
      "Total portfolio value: 118889.49  stock 1 number: 283  stock 2 number: 1094  open cash22024.35\n",
      "change_percent_stock1:  1.49783208514\n",
      "change_percent_stock2:  -0.653804383478\n",
      "t!=datasize21787.45\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-18 00:00:00\n",
      "Total portfolio value: 118613.048  stock 1 number: 284  stock 2 number: 1094  open cash21787.45\n",
      "change_percent_stock1:  0.663886942702\n",
      "change_percent_stock2:  -0.368102631387\n",
      "t!=datasize21551.82\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-19 00:00:00\n",
      "Total portfolio value: 120068.1  stock 1 number: 285  stock 2 number: 1094  open cash21551.82\n",
      "change_percent_stock1:  1.13130658664\n",
      "change_percent_stock2:  3.06062131926\n",
      "t!=datasize21314.57\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-20 00:00:00\n",
      "Total portfolio value: 122096.4  stock 1 number: 286  stock 2 number: 1094  open cash21314.57\n",
      "change_percent_stock1:  4.07984858644\n",
      "change_percent_stock2:  1.9171561456\n",
      "t!=datasize21069.31\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-23 00:00:00\n",
      "Total portfolio value: 120584.72  stock 1 number: 287  stock 2 number: 1094  open cash21069.31\n",
      "change_percent_stock1:  0.923255442414\n",
      "change_percent_stock2:  1.49836094108\n",
      "t!=datasize20829.26\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-24 00:00:00\n",
      "Total portfolio value: 121009.804  stock 1 number: 288  stock 2 number: 1094  open cash20829.26\n",
      "change_percent_stock1:  0.117982746069\n",
      "change_percent_stock2:  2.91204794111\n",
      "t!=datasize20589.96\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-25 00:00:00\n",
      "Total portfolio value: 120700.112  stock 1 number: 289  stock 2 number: 1094  open cash20589.96\n",
      "change_percent_stock1:  0.209605090648\n",
      "change_percent_stock2:  0.276126804278\n",
      "t!=datasize20349.96\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-26 00:00:00\n",
      "Total portfolio value: 120590.9  stock 1 number: 290  stock 2 number: 1094  open cash20349.96\n",
      "change_percent_stock1:  -0.549980862996\n",
      "change_percent_stock2:  0.266810479407\n",
      "t!=datasize20110.91\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-27 00:00:00\n",
      "Total portfolio value: 121892.034  stock 1 number: 291  stock 2 number: 1094  open cash20110.91\n",
      "change_percent_stock1:  -0.287456590732\n",
      "change_percent_stock2:  3.54124834148\n",
      "t!=datasize19870.87\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-04-30 00:00:00\n",
      "Total portfolio value: 122854.996  stock 1 number: 292  stock 2 number: 1094  open cash19870.87\n",
      "change_percent_stock1:  -0.045058576149\n",
      "change_percent_stock2:  6.20954123276\n",
      "t!=datasize19631.29\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-01 00:00:00\n",
      "Total portfolio value: 121252.254  stock 1 number: 293  stock 2 number: 1094  open cash19631.29\n",
      "change_percent_stock1:  -1.45830029133\n",
      "change_percent_stock2:  2.74461436124\n",
      "t!=datasize19395.19\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-02 00:00:00\n",
      "Total portfolio value: 120861.308  stock 1 number: 294  stock 2 number: 1094  open cash19395.19\n",
      "change_percent_stock1:  -1.93928538547\n",
      "change_percent_stock2:  2.3975405608\n",
      "t!=datasize19160.87\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-03 00:00:00\n",
      "Total portfolio value: 120835.84  stock 1 number: 295  stock 2 number: 1094  open cash19160.87\n",
      "change_percent_stock1:  -1.97966512207\n",
      "change_percent_stock2:  2.2656186254\n",
      "t!=datasize18927.76\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-04 00:00:00\n",
      "Total portfolio value: 121688.728  stock 1 number: 296  stock 2 number: 1094  open cash18927.76\n",
      "change_percent_stock1:  -0.663483074843\n",
      "change_percent_stock2:  1.86180216001\n",
      "t!=datasize18692.7\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-07 00:00:00\n",
      "Total portfolio value: 121797.248  stock 1 number: 297  stock 2 number: 1094  open cash18692.7\n",
      "change_percent_stock1:  0.185032720236\n",
      "change_percent_stock2:  0.50055320794\n",
      "t!=datasize18456.63\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-08 00:00:00\n",
      "Total portfolio value: 121091.718  stock 1 number: 298  stock 2 number: 1094  open cash18456.63\n",
      "change_percent_stock1:  -0.7968263157\n",
      "change_percent_stock2:  1.10531859575\n",
      "t!=datasize18223.57\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-09 00:00:00\n",
      "Total portfolio value: 120958.76  stock 1 number: 299  stock 2 number: 1094  open cash18223.57\n",
      "change_percent_stock1:  -0.530888854748\n",
      "change_percent_stock2:  0.230292411633\n",
      "t!=datasize17990.49\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-10 00:00:00\n",
      "Total portfolio value: 121490.07  stock 1 number: 300  stock 2 number: 1094  open cash17990.49\n",
      "change_percent_stock1:  -0.237529691211\n",
      "change_percent_stock2:  1.15415668471\n",
      "t!=datasize17756.97\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-11 00:00:00\n",
      "Total portfolio value: 120681.214  stock 1 number: 301  stock 2 number: 1094  open cash17756.97\n",
      "change_percent_stock1:  -1.38282698007\n",
      "change_percent_stock2:  0.748040845405\n",
      "t!=datasize17526.05\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-14 00:00:00\n",
      "Total portfolio value: 121457.312  stock 1 number: 302  stock 2 number: 1094  open cash17526.05\n",
      "change_percent_stock1:  -0.252860755154\n",
      "change_percent_stock2:  1.28779395297\n",
      "t!=datasize17293.31\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-15 00:00:00\n",
      "Total portfolio value: 120855.11  stock 1 number: 303  stock 2 number: 1094  open cash17293.31\n",
      "change_percent_stock1:  -0.72379053055\n",
      "change_percent_stock2:  0.685012401087\n",
      "t!=datasize17062.33\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-16 00:00:00\n",
      "Total portfolio value: 120408.274  stock 1 number: 304  stock 2 number: 1094  open cash17062.33\n",
      "change_percent_stock1:  -0.537356618787\n",
      "change_percent_stock2:  -0.905972611348\n",
      "t!=datasize16831.33\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-17 00:00:00\n",
      "Total portfolio value: 122264.89  stock 1 number: 305  stock 2 number: 1094  open cash16831.33\n",
      "change_percent_stock1:  1.89706339073\n",
      "change_percent_stock2:  -0.17011810122\n",
      "t!=datasize16595.1\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-18 00:00:00\n",
      "Total portfolio value: 122243.296  stock 1 number: 306  stock 2 number: 1094  open cash16595.1\n",
      "change_percent_stock1:  1.5690223519\n",
      "change_percent_stock2:  -0.00654535934022\n",
      "t!=datasize16359.08\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-21 00:00:00\n",
      "Total portfolio value: 122046.832  stock 1 number: 307  stock 2 number: 1094  open cash16359.08\n",
      "change_percent_stock1:  0.585276399565\n",
      "change_percent_stock2:  0.557635416394\n",
      "t!=datasize16124.32\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-22 00:00:00\n",
      "Total portfolio value: 122844.218  stock 1 number: 308  stock 2 number: 1094  open cash16124.32\n",
      "change_percent_stock1:  1.15569850897\n",
      "change_percent_stock2:  1.35634937779\n",
      "t!=datasize15887.82\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-23 00:00:00\n",
      "Total portfolio value: 124182.594  stock 1 number: 309  stock 2 number: 1094  open cash15887.82\n",
      "change_percent_stock1:  2.3448076219\n",
      "change_percent_stock2:  1.56168322007\n",
      "t!=datasize15647.41\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-24 00:00:00\n",
      "Total portfolio value: 123305.294  stock 1 number: 310  stock 2 number: 1094  open cash15647.41\n",
      "change_percent_stock1:  0.33617136293\n",
      "change_percent_stock2:  1.02697432564\n",
      "t!=datasize15409.83\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-25 00:00:00\n",
      "Total portfolio value: 123628.364  stock 1 number: 311  stock 2 number: 1094  open cash15409.83\n",
      "change_percent_stock1:  1.1794780936\n",
      "change_percent_stock2:  -0.479857014266\n",
      "t!=datasize15169.98\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-29 00:00:00\n",
      "Total portfolio value: 124934.336  stock 1 number: 312  stock 2 number: 1094  open cash15169.98\n",
      "change_percent_stock1:  1.96787486334\n",
      "change_percent_stock2:  0.819518379333\n",
      "t!=datasize14927.48\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-30 00:00:00\n",
      "Total portfolio value: 124717.148  stock 1 number: 313  stock 2 number: 1094  open cash14927.48\n",
      "change_percent_stock1:  1.20400387688\n",
      "change_percent_stock2:  0.119962076505\n",
      "t!=datasize14685.23\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-05-31 00:00:00\n",
      "Total portfolio value: 126996.794  stock 1 number: 314  stock 2 number: 1094  open cash14685.23\n",
      "change_percent_stock1:  4.05873988641\n",
      "change_percent_stock2:  -0.643980171341\n",
      "t!=datasize14434.95\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-01 00:00:00\n",
      "Total portfolio value: 127298.022  stock 1 number: 315  stock 2 number: 1094  open cash14434.95\n",
      "change_percent_stock1:  3.30237698563\n",
      "change_percent_stock2:  0.207271952424\n",
      "t!=datasize14184.45\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-04 00:00:00\n",
      "Total portfolio value: 127594.686  stock 1 number: 316  stock 2 number: 1094  open cash14184.45\n",
      "change_percent_stock1:  1.58481450652\n",
      "change_percent_stock2:  2.55068756822\n",
      "t!=datasize13935.49\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-05 00:00:00\n",
      "Total portfolio value: 129461.48  stock 1 number: 317  stock 2 number: 1094  open cash13935.49\n",
      "change_percent_stock1:  3.23291399687\n",
      "change_percent_stock2:  1.8519112674\n",
      "t!=datasize13680.61\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-06 00:00:00\n",
      "Total portfolio value: 130538.378  stock 1 number: 318  stock 2 number: 1094  open cash13680.61\n",
      "change_percent_stock1:  3.61144305341\n",
      "change_percent_stock2:  1.37459241736\n",
      "t!=datasize13422.23\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-07 00:00:00\n",
      "Total portfolio value: 130644.918  stock 1 number: 319  stock 2 number: 1094  open cash13422.23\n",
      "change_percent_stock1:  2.88202692003\n",
      "change_percent_stock2:  -0.13687728792\n",
      "t!=datasize13162.35\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-08 00:00:00\n",
      "Total portfolio value: 129423.294  stock 1 number: 320  stock 2 number: 1094  open cash13162.35\n",
      "change_percent_stock1:  1.40656922835\n",
      "change_percent_stock2:  -2.37341470997\n",
      "t!=datasize12904.25\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-11 00:00:00\n",
      "Total portfolio value: 129257.196  stock 1 number: 321  stock 2 number: 1094  open cash12904.25\n",
      "change_percent_stock1:  0.378847055148\n",
      "change_percent_stock2:  -1.6770569208\n",
      "t!=datasize12647.24\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-12 00:00:00\n",
      "Total portfolio value: 128516.578  stock 1 number: 322  stock 2 number: 1094  open cash12647.24\n",
      "change_percent_stock1:  -1.27692606249\n",
      "change_percent_stock2:  -0.839353812544\n",
      "t!=datasize12392.88\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-13 00:00:00\n",
      "Total portfolio value: 127737.538  stock 1 number: 323  stock 2 number: 1094  open cash12392.88\n",
      "change_percent_stock1:  -1.55545028849\n",
      "change_percent_stock2:  -1.90309975554\n",
      "t!=datasize12139.34\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-14 00:00:00\n",
      "Total portfolio value: 127976.318  stock 1 number: 324  stock 2 number: 1094  open cash12139.34\n",
      "change_percent_stock1:  -1.51532867198\n",
      "change_percent_stock2:  0.335453346777\n",
      "t!=datasize11886.65\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-15 00:00:00\n",
      "Total portfolio value: 128583.352  stock 1 number: 325  stock 2 number: 1094  open cash11886.65\n",
      "change_percent_stock1:  -0.407619346241\n",
      "change_percent_stock2:  0.98710417058\n",
      "t!=datasize11632.55\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-18 00:00:00\n",
      "Total portfolio value: 128451.012  stock 1 number: 326  stock 2 number: 1094  open cash11632.55\n",
      "change_percent_stock1:  -0.491468113549\n",
      "change_percent_stock2:  1.3029884107\n",
      "t!=datasize11379.46\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-19 00:00:00\n",
      "Total portfolio value: 129496.56  stock 1 number: 327  stock 2 number: 1094  open cash11379.46\n",
      "change_percent_stock1:  1.35827982773\n",
      "change_percent_stock2:  0.343390221432\n",
      "t!=datasize11122.46\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-20 00:00:00\n",
      "Total portfolio value: 130312.388  stock 1 number: 328  stock 2 number: 1094  open cash11122.46\n",
      "change_percent_stock1:  1.73013649029\n",
      "change_percent_stock2:  1.24903425187\n",
      "t!=datasize10863.98\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-21 00:00:00\n",
      "Total portfolio value: 129213.808  stock 1 number: 329  stock 2 number: 1094  open cash10863.98\n",
      "change_percent_stock1:  0.163875297955\n",
      "change_percent_stock2:  0.345721694036\n",
      "t!=datasize10608.49\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-22 00:00:00\n",
      "Total portfolio value: 130391.472  stock 1 number: 330  stock 2 number: 1094  open cash10608.49\n",
      "change_percent_stock1:  1.00848094135\n",
      "change_percent_stock2:  0.971277037605\n",
      "t!=datasize10350.28\n",
      "Action is 0 reward is0\n",
      "..........\n",
      "2007-06-25 00:00:00\n",
      "Total portfolio value: 131992.074  stock 1 number: 331  stock 2 number: 1094  open cash10350.28\n",
      "change_percent_stock1:  3.13350542397\n",
      "change_percent_stock2:  -0.691457158334\n",
      "t==datasize\n",
      "Action is 0 reward is0\n",
      "--------------------------------\n",
      "Total Profit: $0.00\n",
      "Total No. of days played: 499  out of overall days:  500\n",
      "Total portfolio value: 131992.074  stock 1 number: 332  stock 2 number: 1094  open cash10085.79\n",
      "--------------------------------\n"
     ]
    }
   ],
   "source": [
    "#Actual run\n",
    "\n",
    "import csv\n",
    "episode_count=0\n",
    "\n",
    "\n",
    "#Define arrays to store per episode values \n",
    "Act_total_Prof=[]\n",
    "Act_total_stock1bal=[]\n",
    "Act_total_stock2bal=[]\n",
    "Act_total_open_cash=[]\n",
    "Act_total_port_value=[]\n",
    "Act_total_days_played=[]\n",
    "actions_done_perday=[]\n",
    "portfolio_value=[]\n",
    "\n",
    "from keras.models import load_model\n",
    "\n",
    "model_name='model_ep50'\n",
    "\n",
    "model = load_model(\"models/\" + model_name)\n",
    "\n",
    "\n",
    "for e in range(1): #here we run only for 1 episode, as it is Test run\n",
    "\n",
    "    Bal_stock1_t2=Act_Bench_Stock1_Bal\n",
    "    Bal_stock2_t2=Act_Bench_Stock2_Bal\n",
    "    done=False\n",
    "    open_cash_t2= Act_Bench_Open_cash  \n",
    "    total_profit = 0\n",
    "    reward = 0\n",
    "    \n",
    "    #Initialize Agent\n",
    "    agent_test = Agent(8, is_eval=True, model_name=model_name)\n",
    "    #agent = Agent(8)\n",
    "\n",
    "    agent_test.inventory1 =[]\n",
    "    agent_test.inventory2 =[]\n",
    "    for i in range(Bal_stock1_t2):\n",
    "        agent_test.inventory1.append(data1_test[0])\n",
    "    for i in range(Bal_stock2_t2):\n",
    "        agent_test.inventory2.append(data2_test[0]) \n",
    "    \n",
    "    \n",
    "    #Timestep delta to make sure that with time reward increases for taking action\n",
    "    timestep_delta=0\n",
    "    \n",
    "    #Running episode over all days in the datasize\n",
    "    for t in range(Act_datasize):\n",
    "        print(\"..........\")\n",
    "        \n",
    "        print(pd_data1_test.iloc[t,0])\n",
    "        state_class_obj= State(data1_test, data2_test, Bal_stock1_t2, Bal_stock2_t2, open_cash_t2,t)\n",
    "        state_array_obj=state_class_obj.getState()\n",
    "        action = agent_test.act(state_array_obj)\n",
    "        \n",
    "        print(\"Total portfolio value: \" + str(state_class_obj.portfolio_value)+ \n",
    "                  \"  stock 1 number: \" + str(len(agent_test.inventory1))\n",
    "                   +\"  stock 2 number: \"+str(len(agent_test.inventory2))+\"  open cash\"+str(state_class_obj.open_cash))\n",
    "\n",
    "\n",
    "        \n",
    "        #reward should be more as time goes further. We will remove reward_timedelta from actual reward \n",
    "        #reward_timedelta=(datasize-t)*timestep_delta\n",
    "        \n",
    "                   \n",
    "        change_percent_stock1=(state_class_obj.Stock1Price-state_class_obj.fiveday_stock1)/state_class_obj.fiveday_stock1*100\n",
    "        change_percent_stock2=(state_class_obj.Stock2Price-state_class_obj.fiveday_stock2)/state_class_obj.fiveday_stock2*100\n",
    "        \n",
    "        print(\"change_percent_stock1:  \"+str(change_percent_stock1))\n",
    "        print(\"change_percent_stock2:  \"+str(change_percent_stock2))\n",
    "        \n",
    "        \n",
    "        if action == 0:  #buy stock 1\n",
    "            if state_class_obj.Stock1Price > state_class_obj.open_cash:\n",
    "                '''\n",
    "                print(\"Buy stock 1 when it did not have cash, so bankrupt, end of episode\")\n",
    "                reward=-reward_timedelta*10\n",
    "                done = True\n",
    "                '''\n",
    "                #If agent is trying to buy when it has no cash but has stock1 and stock2 balance then, \n",
    "                #it should pick from other actions\n",
    "                #if (state_class_obj.Stock1Blnc>1) and  (state_class_obj.Stock2Blnc>1):\n",
    "                 #   action=random.sample([1, 2, 4, 5, 6],  1)  # Choose 1 elements from sell actions\n",
    "                #else:    \n",
    "                #print(\"Bankrupt\")\n",
    "              \n",
    "                done = True\n",
    "                #end episode\n",
    "                     \n",
    "            else:\n",
    "                #print(\"In Buy stock 1\")\n",
    "                agent_test.inventory1.append(data1_test[t])\n",
    "                Bal_stock1_t2= len(agent_test.inventory1)\n",
    "                Bal_stock2_t2=len(agent_test.inventory2)\n",
    "                open_cash_t2=state_class_obj.open_cash-state_class_obj.Stock1Price #Here we are buying 1 stock\n",
    "                \n",
    "                \n",
    "               \n",
    "                \n",
    "        if action == 1:  #sell stock 1\n",
    "            if state_class_obj.Stock1Blnc <1 :\n",
    "               # print(\"sold stock 2 when it did not have stock 2, so bankrupt, end of episode\")\n",
    "                \n",
    "                done = True\n",
    "                #end episode\n",
    "            else:\n",
    "                #print(\"In sell stock 1\")\n",
    "                bought_price2=agent_test.inventory1.pop(0)\n",
    "                Bal_stock1_t2= len(agent_test.inventory1)\n",
    "                Bal_stock2_t2=len(agent_test.inventory2)\n",
    "                open_cash_t2=state_class_obj.open_cash+state_class_obj.Stock1Price #State[0] is the price of stock 1. Here we are buying 1 stoc\n",
    "          \n",
    "                 \n",
    "        \n",
    "\n",
    "\n",
    "        \n",
    "        if action == 2:             # Do nothing action    \n",
    "                Bal_stock1_t2= len(agent_test.inventory1)\n",
    "                Bal_stock2_t2=len(agent_test.inventory2)\n",
    "               # print(\"Do nothing\")\n",
    "        \n",
    "        \n",
    "        if action == 3:  #buy stock 2\n",
    "            if state_class_obj.Stock2Price > state_class_obj.open_cash:\n",
    "                '''\n",
    "                print(\"Buy stock 2 when it did not have cash, so bankrupt, end of episode\")\n",
    "                reward=-reward_timedelta*10\n",
    "                done = True\n",
    "                \n",
    "                '''\n",
    "                #If agent is trying to buy when it has no cash but has stock1 and stock2 balance then, \n",
    "                #it should pick from other actions\n",
    "                #if (state_class_obj.Stock1Blnc>1) and  (state_class_obj.Stock2Blnc>1):\n",
    "                 #   action=random.sample([1, 2, 4, 5, 6],  1)  # Choose 1 elements from sell actions\n",
    "                #else:    \n",
    "                #print(\"Bankrupt\")\n",
    "\n",
    "                done = True\n",
    "                     #end episode   \n",
    "            else:\n",
    "                #print(\"In Buy stock 2\")\n",
    "                agent_test.inventory2.append(data2_test[t])\n",
    "                Bal_stock1_t2= len(agent_test.inventory1)\n",
    "                Bal_stock2_t2=len(agent_test.inventory2)\n",
    "                open_cash_t2=state_class_obj.open_cash-state_class_obj.Stock2Price\n",
    "                \n",
    "              \n",
    "        \n",
    "        if action == 4:  #sell stock 2\n",
    "            if state_class_obj.Stock2Blnc <1 :\n",
    "                    #print(\"sold stock 2 when it did not have stock 2, so bankrupt, end of episode\")\n",
    "                    done = True\n",
    "                #end episode\n",
    "            else:\n",
    "                #print(\"In sell stock 2\")\n",
    "                bought_price2=agent_test.inventory2.pop(0)\n",
    "                Bal_stock1_t2= len(agent_test.inventory1)\n",
    "                Bal_stock2_t2=len(agent_test.inventory2)\n",
    "                open_cash_t2=state_class_obj.open_cash+state_class_obj.Stock2Price\n",
    "    \n",
    "\n",
    "               # print(\"reward for selling stock2: \" + str(reward))\n",
    "            \n",
    "        \n",
    "        \n",
    "        #print(\"reward:  \"+str(reward))\n",
    "        #if done!= False:done = True if t == datasize\n",
    "        if t == Act_datasize-1:\n",
    "            print(\"t==datasize\")\n",
    "            done=True\n",
    "            next_state_class_obj=State(data1_test, data2_test, Bal_stock1_t2, Bal_stock2_t2, open_cash_t2,t)\n",
    "            next_state_array_obj=next_state_class_obj.getState()\n",
    "        else:\n",
    "            print(\"t!=datasize\"+str(open_cash_t2))\n",
    "            next_state_class_obj=State(data1_test, data2_test, Bal_stock1_t2, Bal_stock2_t2, open_cash_t2,t+1)\n",
    "            next_state_array_obj=next_state_class_obj.getState()\n",
    "            \n",
    "        print(\"Action is \"+str(action)+\" reward is\" + str(reward))\n",
    "\n",
    "\n",
    "       \n",
    "        \n",
    "        actions_done_perday.append(action)\n",
    "        portfolio_value.append(next_state_class_obj.portfolio_value)\n",
    "\n",
    "        if done==True:\n",
    "            print(\"--------------------------------\")\n",
    "            print(\"Total Profit: \" + formatPrice(total_profit))\n",
    "            print(\"Total No. of days played: \" + str(t)+ \"  out of overall days:  \" + str(Act_datasize))\n",
    "            print(\"Total portfolio value: \" + str(next_state_class_obj.portfolio_value)+ \n",
    "                  \"  stock 1 number: \" + str(len(agent_test.inventory1))\n",
    "                   +\"  stock 2 number: \"+str(len(agent_test.inventory2))+\"  open cash\"+str(next_state_class_obj.open_cash))\n",
    "\n",
    "            Act_total_Prof.append(total_profit)\n",
    "            Act_total_stock1bal.append(len(agent_test.inventory1))\n",
    "            Act_total_stock2bal.append(len(agent_test.inventory2))\n",
    "            Act_total_open_cash.append(state_class_obj.open_cash)\n",
    "            Act_total_port_value.append(state_class_obj.portfolio_value)\n",
    "            Act_total_days_played.append(t)\n",
    "\n",
    "\n",
    "            print(\"--------------------------------\")\n",
    "            state_class_obj.reset()\n",
    "            break\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff1c0f67470>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Test Stock Prices and actions taken by agent Stock Plot\n",
    "import matplotlib.pyplot as plt\n",
    "import datetime\n",
    "import numpy as np\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "pd_bm=pd.DataFrame.from_records(Benchmark_Port_Value)\n",
    "pd_bm[0]=pd.to_datetime(pd_bm[0], format='%Y/%m/%d')\n",
    "\n",
    "x1 = np.array(pd_data1_test['Date'])\n",
    "y1 = portfolio_value\n",
    "\n",
    "x2=pd_bm[0]\n",
    "y2=pd_bm[1]\n",
    "\n",
    "\n",
    "\n",
    "plt.title(\"Portfolio Value vs Benchmark Over Test Data (Google and Walmart Stocks)\")\n",
    "plt.xlabel(\"Days\")\n",
    "plt.ylabel(\"Portfolio Value in $\")\n",
    "\n",
    "plt.plot(x1,y1)\n",
    "plt.plot_date(x2, y2, c = 'red', marker='v', linestyle='-')\n",
    "\n",
    "\n",
    "#plt.plot(x1, z, '-', color='black');\n",
    "plt.plot(x1, y1, '-', color='blue');\n",
    "\n",
    "\n",
    "\n",
    "#plt.scatter(x1,Benchmark_Port_Value,marker='o')\n",
    "\n",
    "plt.legend(('Trading Model', 'Benchmark'))\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
